int、int16、int32、int64、float、float16、float32、float64
在做芯片项目的时候,为了最大限度减少计算量,经常遇到这几个类精度转换,做下记录:
bits:位数
bytes:字节 1bytes = 8 bits
单精度用小数用23位存储,加上默认的小数点前的1为1,2^(23+1) = 16777216.
因为10^7<16777216<10^8,所以说单精度浮点数的有效位数是7位。
双精度的小数位数是52位存储,2^(52+1) = 9007199254740992.
因为10^16<9007199254740992<10^17,所以双精度的有效位数是16位。
在32 位的系统上
short 占据的内存大小是2 个byte;
int占据的内存大小是4 个byte;
long占据的内存大小是4 个byte;
float占据的内存大小是4 个byte;
double占据的内存大小是8 个byte;
char占据的内存大小是1 个byte。
部分内容转自
c语言基本数据类型(short、int、long、char、float、double) - 行方思远 - 博客园 https://www.cnblogs.com/ricksteves/p/9899893.html