2025-11-08 05:56:32
单精度浮点数减法就像给两个数做减法,但要先把它们的格式对齐。首先看这两个数的符号位,如果符号不同就相当于做加法,符号相同的话直接相减。然后要调整指数部分,让两个数的指数相同,比如5.0的指数是2,2.5的指数也是2,这样可以直接用尾数相减。还要检查结果有没有溢出,比如1.0减2.0的话,结果会是-1.0,符号位会变。
为什么是这个答案呢?因为单精度浮点数是32位存储的,其中1位符号,8位指数,23位尾数。比如5.0(二进制101)减2.5(二进制10.1),先统一指数为2,变成0100 00000000,再减去0100 00011010,结果就是0100 11111110,对应的十进制是-2.5。这是因为尾数相减时,0.0000 00000000减去0.0000 00011010会借位到符号位,所以符号变负了。数据来源是IEEE 754标准,32位浮点数运算时确实会这样处理指数和尾数。
本题链接: