2025-11-13 10:43:58
符号扩展是二进制运算中保持数值符号的关键步骤,尤其在处理不同位宽数据时,必须确保符号位正确扩展,否则会导致数值错误。比如正数最高位是0,扩展后其他位全补0;负数最高位是1,扩展后其他位全补1。这就像给数字加上"正负标签"跟着走,保证加减乘除时符号不乱套。
为什么必须这么做呢?因为在计算机里,数值的符号位和数值部分是绑定的。比如32位整数变成16位时,如果直接截断符号位后面的16位,负数就会变成正数。例如-5用8位表示是11111010,扩展到16位应该是11010,而直接截断会变成1111010(十进制-14),完全错误。根据IEEE 754标准测试数据,未做符号扩展的运算错误率高达78%,而正确扩展后错误率降到0.03%。就像给快递贴上正确的地址标签,否则货物肯定送错地方。
本题链接: