C —— 数据的存储

首先明确:各种数据都由二进制进行存储.

double:

存储长度:64bit
组成:符号位(1bit)+指数位(11bit)+底数位(52bit)


float:

存储长度:32bit
组成:符号位(1bit)+指数位(8bit)+底数位(23bit)
将浮点数用二进制表示的方法:

  1. 先用浮点数将二进制表示(对于小数部分用2的负次幂表示(负次幂不一定能表示完整出来,因此叫做浮点数))
  2. 转换为科学计数法(1.xxx*2^k:底数是一个小数,整数部分为1,因为固定这个模式,1就不需要存储)
  3. 底数位是23位,因此表示范围为0~8388607;因此可以表示的整数
  4. 指数为8位,但是由于指数可能为负数,所以为-128~127;对于2^k,需要将k加上127,再用二进制表示;

例:

8.25用float进行表示:

  1. 用二进制形式表示:1000.01
  2. 化为科学计数法:1.00001*2^3 (二进制中左移,右移相当于除以2,乘以2)
  3. 符号位:(0为正)0,(指数转化,增大127(130),表示为二进制,然后补0)10,000,010,(补0,向后补)0000100000000000000000;
  4. 得到结果:0 10,000,010 00,001,000,000,000,000,000,000
  5. 4个字节的值是 65 4 0 0

猜你喜欢

转载自blog.csdn.net/lansehuanyingyy/article/details/80201093