2025-11-13 10:49:00
负数原码像正数是因为符号位和数值分开存。原码规则是符号位加绝对值,负数符号位是1,数值部分用正数二进制写。比如-5的原码是1011,符号位1代表负,后面011是5的绝对值,所以数值部分显示成正数。
因为原码的存储方式是符号位和数值部分各占一位(比如8位整数的话,1位符号+7位数值),负数符号位1不影响数值部分。比如-5在8位原码中是10100101,符号位1,数值部分0100101等于十进制的5。数据存储时符号位单独处理,所以数值部分永远和正数一样。比如-1的原码是10000001,数值部分0000001等于1,但符号位1让整体变负。这种设计让加减法更简单,因为符号位和数值可以分开计算。比如-3加-2,符号位先算出1,数值部分3+2=5,结果就是-5的原码10100011。但要注意位数限制,比如8位只能存-128到127,超过的话数值部分会溢出变成负数。比如-129的原码是10000011,数值部分0000011等于3,但因为符号位1,实际值是-3,但实际应该存-129,所以原码只能表示-128到127。这就是为什么负数原码数值部分像正数,但符号位决定整体正负。
本题链接: