C语言浮点型存储到内存

将一个float型转化为内存存储格式的步骤为:


①.将这个实数的绝对值转化为二进制,转化方法如下:例如11.25表示为二进制数先将整数部分转为二进制

		11/2=5   余1
		5/2=2	 余1
		2/2=1    余0
		1/2		 余1
		0结束		11的二进制表示为(从下往上):1011

小数部分转化为二进制:用小数部分乘以2,乘到小数部分为0或者到精确位数为止.

		0.25x2=0.5		  0
		0.5x2=1			  1
		小数部分的二进制表示为(从上往下):01
		11.25的二进制表示可表示为1011.01

②将这个二进制格式实数的小数点左移或者右移N位,直到小数点移动到第一个有效数字的右边.向左移为+,向右移为-

		1011.01移动到第一个有效数字需要向左移3位,指数为+3,结果为1.01101

③从小数点右边第一位开始数出二十三位数字放入第22到第0位,如果位数不够右边补零
1.01101->将小数位放入22-0位,从左到右,右边位数不够补零

④如果实数是正的,则在第31位放入0,否则放入1

⑤如果n是左移得到的,说明指数为正,第30位放入1.如果是右移得到的或 N=0,则第30为放入0;
在这里插入图片描述
⑥将n减去1后化为二进制,并在左边加补0补足七位,再放入第29到第23位
1011.01->1.01101为左移3为,指数为3,所以这里是3-1=2,16进制为10,左边补0
在这里插入图片描述
另外一种方法就是用127加上指数,得出的二进制结果就是中间的8位
这里指数为+3, 127+3=130 16进制为 0x82,二进制表示为 1000 0010
如果指数为-3,127+(-3)=124 16进制为7c,二进制表示为0111 1100

结果为  0100 0001 0011 0100 0000 0000 0000 0000
		 4	  1    3    4    0    0    0    0

到此,float存入内存完成


8.4存入内存
整数部分8
8/2=4 0
4/2=2 0
2/2=1 0
1/2=0 1
二进制为 1000

小数部分0.4,这里为死循环,所以只计算到最大位数
0.4x2=0.8 0
0.8x2=1.6 1
0.6x2=1.2 1
0.2x2=0.4 0
0.4x2=0.8 0
0.8x2=1.6 1
0.6x2=1.2 1
0.2x2=0.4 0
0.4x2=0.8 0
0.8x2=1.6 1
0.6x2=1.2 1
0.2x2=0.4 0
0.4x2=0.8 0
0.8x2=1.6 1
0.6x2=1.2 1
0.2x2=0.4 0
0.4x2=0.8 0
0.8x2=1.6 1
0.6x2=1.2 1
0.2x2=0.4 0
0.4x2=0.8 0
0.8x2=1.6 1
0.6x2=1.2 1
0.01100110011001100110011

8.4的二进制为:1000.01100110011001100110011

1000.01100110011001100110011左移3位:1.00001100110011001100110 23位
8.4为整数,指数为左移3位,结果如下:
在这里插入图片描述

0100 0001 0000 0110 0110 0110 0110 0110
 4    1    0     6   6    6    6    6

0.25存入内存: 只有小数部分
0.25x2=0.5 0
0.5x2=1 1

0.25二进制位:0.01
0.01->1.00 右移2位 所以指数为负数 -2-1=-3 十六进制FD 二进制 11111101
由于第30位是由( 左移为1 )或 (右移为0) 的来决定,所以只会取七位放入也就是 1111101,所以结果为:
在这里插入图片描述
指数为-2,127+(-2)=125 16进制为7D,二进制表示为0111 1101

0011 1110 1000 0000 0000 0000 0000 0000
 3    E    8    0    0    0    0    0

double型转为二进制如下
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值