2025-11-15 00:01:43
80h是十六进制表示的机器数,转换成二进制就是10000000。在8位有符号数里,最高位是符号位,1代表负数,所以80h肯定是个负数。要算出具体值,得用补码转换法。首先把10000000取反变成01111111,再加1变成10000000,这个结果就是十进制的128,前面加负号就是-128。简单说就是80h在机器里直接代表-128这个数。
为什么80h等于-128呢?这得看计算机怎么处理负数。8位二进制能表示256个值,0到127用正数表示,剩下的128到255用补码表示负数。比如10000000这个二进制数,先看它是不是负数,最高位是1就肯定负数。然后按照补码规则,取反加一就能得到绝对值。取反01111111加一就是10000000,也就是十进制的128,所以原数就是-128。查表的话,80h对应的二进制确实是10000000,所以结论没错。机器数这样设计的好处是加减法不用考虑符号位,直接按二进制运算就行。
本题链接: