标题: 小谈负数在计算机的理解 [打印本页]

作者: liuyang    时间: 2012-1-11 03:59
标题: 小谈负数在计算机的理解
      负数在计算机中是以补码的形式储存,而平常我门看到的是正数前的符号位改成1,这样便于我们直观认识.比如 5  101.

       在计算机中是以一个字节储存的,那么 5是 00000101  -5  就是10000101 这样我们很容易理解,但是为了参加运算,计算机中常常是以补码的形式储存的,即取反+1(符号位不变). 今天看人说为什么负数的补码最高位一定是1,其实很容易解释,00000001-01111111 是表示正数的,从1000000-11111111是表示负数的储存的,那么你说最高位是不是一定是1. 至于补码是怎么回事,看那么理论其实很饶口难以理解.其实你这样想下 5+(-5)=0 (0有2中情况会出现,正常为0还有益处数据为0)  正数和负数储存的数相加怎么变为0肯定是用益处,当数值等于256那么数据益处低位刚好全为0, 你知道5的2进制表示,那么你想想既然+起来是00000000 那么-5的直就出来了,再想想那个补码法则,取反后加起来运算肯定是11111111然后在加1就变成0了,其实我门常常使用的是便于直观的正数最高位换 成1就是负数的原码,实际存储到数据寄存器中就自动以补码形式储存为的就是便于计算机运算. 说错了应该是为了便于计算机运算才提出补码这个定义.


作者: pcbcopy    时间: 2012-1-11 14:45

向高手学习。。。






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1