2025-11-20 05:22:50
int变量能存负数因为计算机用二进制补码表示,最高位当符号位0正1负后面各位数值比如8位二进制能存-128到127。这就像给数字装了个方向箭头,正数箭头朝右负数朝左,但占用的存储空间一样大。比如存-5用二进制是11111011,虽然看起来像正数但计算机自动识别符号位就知道是负数了。
计算机用补码历史1930年提出解决了正负数存储问题比如8位二进制最高位符号位后面7位数值范围-128到127原码反码需要额外符号位且无法连续运算补码把符号位变成数值位这样加减法不用额外判断符号。数据手册显示32位int用补码能存-到,比原码多出两个数量级。比如温度传感器测到-10度时,计算机直接存不用像原码那样多占一位符号位。所以现在所有int类型都默认用补码存负数,既省空间又能连续运算。
本题链接: