- 主题:Re: 高级语言里的小数是怎么转化成机器里的浮点数的
0.1是十进制,存储在内存中是二进制,按一定的格式要求(浮点数,比如多少二进制位存有效小数部分,多少位存指数部分),可以看《计算机组成原理》,计算机专业基础课
--
FROM 220.249.129.*
不是所有的十进制数和二进制数都能精确转换的,所以浮点数有精度问题,比如double类型大概15位有效小数位数
【 在 ooolinux 的大作中提到: 】
: 0.1是十进制,存储在内存中是二进制,按一定的格式要求(浮点数,比如多少二进制位存有效小数部分,多少位存指数部分),可以看《计算机组成原理》,计算机专业基础课
--
FROM 220.249.129.*
整数也就1位
【 在 foliver 的大作中提到: 】
: 15位有效数字是带整数部分的,总共15位。
--
FROM 120.35.168.*
C++有double双精度型,还有long double
【 在 chaobill 的大作中提到: 】
: float32 连6位十进制有效数字都不一定能达到吧
--
FROM 220.249.129.*
编译器编译成机器码(指令和数据都是二进制),链接器Link成可执行exe,exe执行被加载到内存(都是二进制)
【 在 smallpanda03 的大作中提到: 】
: 我知道原理。我想问这些工作是谁做的。是编译器做的,还是高级语言自带的什么库做的?
--
FROM 120.35.168.*