求C语言大神,c语言中实型数在允许范围内,比如实数1.0能不能精确表示?

2025-04-04 17:23:13
推荐回答(2个)
回答1:

1.0用双精度(一般是8个字节)表示如下:

十六进制形式:00 00 00 00 00 00 F0 3F

二进 制形式:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 0000

符号位:0(第一个比特)
指数位:000 0000 0000 (接着取11个比特)
尾数位:0000 0000 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 0000(接着取52个比特)
其中符号位是0为正,是1为负
结果=正负号*1.尾数位*2^指数位

结果的二进制表达式:+1.0000000000000000000000000000000000000011111111110000*2^00000000000

从结果的二进制表达式来看,也就约定于 1.0。但是,不是绝对精确

回答2:

1.0已经表示为浮点型了,另外还不是很清楚您想表达的意思。