日期:2014-05-20  浏览次数:20670 次

高手接招啦.等你来.
哪位高手帮我解释下汇编语言里的补码是做什么的,以及重要概念,在下感激不尽.
希望不要象书上说的那么糊涂,大家帮忙啦.

------解决方案--------------------
正好,我前两个月也狠K了一下补码的知识,当然,这只前你要先理解二进制`那么补码就不难理解`

在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

原码就是一个数的二进制码```
正数的补码:与原码相同。
例如,+9的补码是00001001。


负数的补码:符号位(就是最高位,最左边一位)为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
例如:
-7的补码,整个为10000111;因为是负数,则符号位为“1”,其余7位为-7的绝对值+7的原码0000111按位取反为1111000;再加1,所以-7的补码是11111001。



------解决方案--------------------
如果想知道补码是啥首先要知道啥是原码和反码

举个例子吧
 10进制的5 转成2进制是 0101
32位系统的话存储形式是
0000 0000 0000 0000 0000 0000 0000 0101 - 这就是原码
把原码按位取反后就是反码
1111 1111 1111 1111 1111 1111 1111 1010 - 这就是反码
反码加1就是补码 也就是-5在计算机里的存储形式
1111 1111 1111 1111 1111 1111 1111 1011 -这就是补码