待到秋来九月八,我花开尽百花杀
负数是如何在计算机中储存的
什么是2的补码(Two's Complement)
为什么要使用2的补码(Two's Complement)形式储存负数?
2的补码的优势
2的补码的本质
为什么正数加法适用于2的补码?
反码
转载一篇文章,很好的理解了负数在计算机中的机制,留下来学习:
负数是如何在计算机中储存的
举例来说:+8在计算机中表示为二进制的1000,那么-8怎么表示呢?
可以将一个二进制最高位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表示负数。比如,在8位机中,规定每个字节的最高位为符号位。那么,+8就是00001000,而-8则是10001000。
但是,随便找一本《计算机原理》,都会告诉你,实际上,计算机内部采用2的补码(Two’s Complement)表示负数。
什么是2的补码(Two’s Complement)
它是一种数值的转换方法,要分二步完成:
第一步,每一个二进制位都取相反值,0变成1,1变成0。比如,00001000的相反值就是11110111。
第二步,将上一步得到的值加1。11110111就变成11111000。
所以,00001000的2的补码就是11111000。也就是说,-8在计算机(8位机)中就是用11111000表示。
为什么要使用2的补码(Two’s Complement