2025-11-08 04:25:13
0x80在计算机里是二进制补码的典型例子,它代表-128这个数值。而-0x80就是直接写出的负数形式,其实和0x80的数值大小相同,只是显式标明了负号。比如用8位二进制数存储时,0x80的二进制是10000000,这既是补码表示-128,也是原码表示-128的特殊情况。
为什么0x80等于-128呢?因为计算机用补码存储负数时,最高位是符号位。当8位二进制数全为0时是0,全为1时是-128。具体来说,0x80的二进制是10000000,符号位1表示负数,后面7位0000000的值是0,所以补码计算方法是-128+0=-128。而-0x80直接用负号表示,和补码转换后的结果完全一致。比如在C语言里,char类型用补码存储,-0x80就是-128,和0x80的值相同。但要注意原码表示时,-0x80的二进制是10000000,而补码表示的-0x7f(即-127)二进制是11111111,这时候数值就不一样了。所以0x80和-0x80虽然数值相同,但存储方式不同,前者是补码隐式表示,后者是显式负号。
本题链接: