码迷,mamicode.com
首页 > 其他好文 > 详细

浮点数在内存中的存放

时间:2020-05-07 00:57:41      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:size   科学   现在   style   进制   二进制   space   小数点   ace   

float型在内存中:
第一位为符号位,8位为指数部分,23位为尾数部分
double型在内存中:
第一位为符号位,11位为指数部分,52位为尾数部分
 
用8.25说明float型在内存中的存放
 
将8.25化为二进制得到:1000.01,用科学计数法表示即1.00001*10^3
从小数部分第一位数起,数共23位放入尾数部分,不足则往右补0
即尾数部分为00001 000000 000000 000000
小数点左移了3位,取3-1=2的二进制 10 放入指数部分右端,左边补0
即指数部分现在是:10000010
我们在指数部分的第一位填 1/0 代表 正负,
(注:如果小数点左移,说明是指数是正数,如果小数点右移说明是指数是负数)
(注:n是小数点移动次数,如果n是左移得到的,取n-1,如果n是右移得到的或n=0,则将n化为二进制后在左边补0,再各位求反(除了符号位),放入指数部分右端)
(注:无符号型,符号位的第一位为 1 代表指数是正数,相当于指数部分多了一位)
 
整体在内存中表示:
01000001000001000000000000000000
如果是负数,则符号位为1就行
 
指数部分为负数情况(即右移)
用-0.25说明步骤:
 
负数符号位为1
‘‘‘
小数部分化为二进制 0.01
科学计数法右移两位即 10^-2
故指数部分第一位为0
取指数的绝对值化为二进制得 10
现在为 00000010
除符号位全部取反得 01111101
‘‘‘
尾数部分全为0
所以-0.25在内存中表示为:
10111110100000000000000000000000


浮点数在内存中的存放

标签:size   科学   现在   style   进制   二进制   space   小数点   ace   

原文地址:https://www.cnblogs.com/xikl/p/12839849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!