如:+33对应的二进制是00010001
如果这个数落在后半轴上,也就是128~256(不含256)区间上时,我们说它是一个负数,至于负多少取决于它离终点256还差多少。
如:156表示就不再是+156,而是表示-100,二进制编码为:10011100
稍微细心的朋友可能会发现,凡是落在后半轴的数,也就是负数,都有一个共同点,那就是这个数第1位二进制编码一定是1,而落在前半轴的数第1位一定是0,这样就造成很多人误认为1就是仅仅简单的表示负号,而0表示正号,这是不科学的。但反过来说是可以的:负数的最高位一定是1,正数的最高位一定是0
可能有朋友会问了,156表示不是+156,那+156该怎么表示呢,它的二进制编码又是多少呢?
在这里我要强调一下,我们现在是假设只用1个字节(也是8位二进制)来表示带符号的整数,那么它能表示的数的范围只能是-128~+127之间,156是表示不下的,明白吗。
好的,到这里相信各位基本了解了负数的表示原理了,在这里我还想沟通一下求负数表示的另外一种方法,这就是很多书上提到的采用补码的方法
要求一个负数的二进制表示方式,可以先求出它的原码,然后每位取反得出它的反码,反码再加1得出补码
如:假设还是以8位二进制来表示带符号的整数
-56的原码是:00111000
那么它的反码是:11000111
补码为:11000111+1=11001000
得出,-56在计算机内部是用11001000这串二进制来表示的
欢迎分享,转载请注明来源:优选云