2025-11-08 06:52:24
有符号数算加减乘除得先转成补码,符号位跟着数字一起算。比如+5和-3,+5转补码是00000101,-3转补码是11111101,加起来是11100010,转回原码是-14。乘除的话,负数得先转补码再算,符号位单独记,看结果符号位怎么定。
为啥这样算呢?因为补码设计能让符号位参与运算,省得每次加负数都变减法。比如8位二进制,+1是00000001,-1是11111111,加起来正好是10000000,等于-128,和数学里的负数加法结果一致。数据来源是计算机组成原理教材,里面说补码能统一加减法逻辑。比如算-3乘-5,先转补码11111101和11111011,相乘结果是,取低8位是01101101,转回原码是+109,符合负负得正的规则。不过除法要小心,比如-14除2,补码是11100010,右移一位得1110001,补足8位是11100001,转回原码是-7,正好对。所以补码运算既统一又高效,符号位跟着走,结果再调整。
本题链接: