c如何在8位插槽中存储双倍小数?
#include "stdio.h"
main(){
double x = 123.456;
printf("\n %d - %e \n",sizeof(x),x);
}
Run Code Online (Sandbox Code Playgroud)
输出:
8 - 23.456
Run Code Online (Sandbox Code Playgroud)
x的值是正确的123.456,但据说它只有8位.
那不是8位.这是8个字节.每个字节至少为8位(通常恰好为8位).
所以它可能是8*8 = 64位double.
编辑:
的sizeof()操作者产生一个对象的大小以字节计.
根据定义,"字节"是a的大小char.(这就是C标准定义单词"byte"的方式;它可能在其他上下文中有不同的含义.)
一个字节中的位数由宏指定,在中CHAR_BIT定义<limits.h>.几乎你可能遇到的任何系统都会有CHAR_BIT == 8,但据我所知,DSP(数字信号处理器)的一些实现CHAR_BIT设置为16或32.
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |