黑马程序员技术交流社区

标题: 二进制 1000 0000 为什么是-128 [打印本页]

作者: silentCat    时间: 2015-10-9 18:12
标题: 二进制 1000 0000 为什么是-128
原码    1000 0000
取反    1111 1111
加一 1 0000 0000
相当于多出一个bits
如果位运算符不参与加一,则补码
是     1 1000 0000
这个是什么机制
作者: dzzheng3    时间: 2015-10-9 18:51
8位二进制补码是采用最高位来表示符号,低7位来表示数值大小的一种编码.8位二进制码有256种状态,可以表示256个数.如果表示范围是-127~+127的话,那就会存在两个0,就是+0和-0.而实际上,0是没有正负的,不需要有两个0.因此,就用+0(00000000)来表示0,而用-0(10000000)来表示-128,因为10000000=128,而恰好它的最高位即符号位=1表示负数.这是人为规定的,但这个规定与二进制补码规则不矛盾.
作者: 0925李超月    时间: 2015-10-9 19:35
最高位为1  
作者: 苏轶博    时间: 2015-10-9 21:39
二进制前第一个数字是0,是正数,1则是负数
作者: dai2686779    时间: 2015-10-9 21:47
666666666666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2