C#有三种类型的浮点常量:以f
或F
为后缀的浮点常量占4个字节(32位),以d
或D
为后缀(或省略)的浮点常量占8个字节(64位),以m
或M
为后缀的浮点常量占16个字节(128位)。 在C#中,32位和64位浮点常量均以ISO/IEC 60559标准规定的格式存储。例如:131.0625F
的存储格式是这样的:
0 10000110 00000110001000000000000
131.0625F
占4个字节,32位。其中符号占1位,阶码占8位,尾数占23位131.0625D
的存储格式是这样的:
0 10000000110 0000011000100000000000000000000000000000000000000000
131.0625D
占8个字节,64位。其中符号占1位,阶码占11位,尾数占52位
由此类推,131.0625M
是不是也是按照ISO/IEC 60559标准规定的格式存储的?也就是说,131.0625M
的存储格式是这样的:
0 100000000000110 0000011000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
131.0625M
占16个字节,128位。其中符号占1位,阶码占15位,尾数占112位