早教吧 育儿知识 作业答案 考试题库 百科 知识分享

八位二进制数据的范围为什么八位二进制补码的表示范围是-128--127?-128的补码不是100000000,而第一位不应该是符号位吗,为什么这里不是表示的零而是-128

题目详情
八位二进制数据的范围
为什么八位二进制补码的表示范围是-128--127?
-128的补码不是10000 0000,而第一位不应该是符号位吗,为什么这里不是表示的零而是-128
▼优质解答
答案和解析
一下是鄙人的理C的补码设置是为了方便表示各个数,以及实现减法变为加法运算。补码所遵循的规则是出于科学性质考虑的。我们先抛开补码的实现规则,从补码的出发点来考虑。比如8bit的short int,每一位都有两种可能,0或1.则一定是可以表示2的8次方,即256个数的。然而如果按照一般的二进制定义规则,可以实现+127~-127,一共255个数。还有一个是由于+0与-0表示同一个数。采取补码规则可知,+0与-0的补码都是00000000。原来的+127~-127的数都可以无重复地转为相应的补码。这时候,+0-0重复地现象解决了,那剩下一个0,1组合10000000是无法从-127~+127的源码转换而成的,就约定成-128.