2025-11-09 06:44:05
十进制中a是-128,-a的码值是128。这是因为在8位二进制编码里,符号位占1位,数值位占7位,所以能表示-128到127的范围。当a取最小值-128时,-a就是+128,但+128超出8位范围,所以实际存储时会变成-128。这就像用7个数字装东西,最左边位置放符号,装不下就倒过来装。
为啥a是-128呢?因为8位二进制里,最高位是符号位。当符号位是1时,剩下的7位数值最大是127,所以整个数就是-128。比如二进制10000000对应十进制-128,取反符号位变成01111111就是+127。当a是-128时,-a等于+128,但+128需要9位表示(10000000),所以8位里只能用-128来表示。这就像用7块砖头最多搭127块,但要是倒过来用8块砖头,最左边那块砖就当符号用,最多只能装-128。数据来源是计算机组成原理中的定点数章节,引用公式:码值=符号位×2^(n-1)+数值位,当n=8时,最小码值-128=(-1)^1×2^7+0。
本题链接: