当前位置:首页 » 存储配置 » 尾数存储

尾数存储

发布时间: 2023-03-06 09:07:04

A. float和double型分别怎么存储

C/C++的浮点数据类型有float和double两种。

类型float大小为4字节,即32位,内存中的存储方式如下: 符号位(1 bit) 指数(8 bit) 尾数(23 bit)

类型double大小为8字节,即64位,内存布局如下: 符号位(1 bit) 指数(11 bit) 尾数(52 bit)

符号位决定浮点数的正负,0正1负。

指数和尾数均从浮点数的二进制科学计数形式中获取。

如,十进制浮点数2.5的二进制形式为10.1,转换为科学计数法形式为(1.01)*(10^1),由此可知指数为1,尾数(即科学计数法的小数部分)为01。

根据浮点数的存储标准(IEEE制定),float类型指数的起始数为127(二进制0111 1111),double类型指数的起始数为1023(二进制011 1111 1111),在此基础上加指数,得到的就是内存中指数的表示形式。尾数则直接填入,如果空间多余则以0补齐,如果空间不够则0舍1入。所以float和double类型分别表示的2.5如下(二进制):

符号位

指数

尾数

0

1000 0000

010 0000 0000 0000 0000 0000


0

100 0000 0000

0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

B. 数据的表示方法大尾数小尾数

大尾小尾 是数据在存储器中的存储格式,INtel采用的是小尾表示,即数据的高位存储在存储器的高地址,低位存储在存储器的低地址,例如一个十六进制数据0x1234存储在内存中,那么该数据在内存中的存储格式为: 34 12 == 内存方向是 从底(左)到高(右)而大尾数据存储格式,一般存在摩托罗拉系统的XX中(忘记了) ,存储格式刚好和小相反,高位低存,低位高存,还是数据0x1234 在内存中的存储格式为: 12 34 ,高位的12存储在低地址的存储器地址中,低位34存储在高地址中=====大小 只是一种数据存储格式

C. Java中double的取值范围为1.79E308。E308是什么意思

此说法正确:
这个是科学计数法,E308表示10的308次方.
1.79E308也就是1.79乘以10的308次方
关于位存储:
比如1位,只能表示0和1,所以1位最大值1
比如2位,0到3,所以最大值3.
关于long:
long共64位其中1位是符号位正负,剩余63位,
表示最大数 2^63-1 =9223372036854775807
long用途:
十进制就有19位,如果你的订单低于19位就能使用long来存储。
问题:
double为什么表示的整数比long大,都是64位啊
原来double,把64位划分了几个 部分,
1、有符号位,指数位,尾数位,通过降低精确度存储更大的数字。
2、尾数52位存储具体数字,指数11位和小数点位置有关,符号位1位代表正负
3、如果整数,你的数超过2^52,double就不精确了,开始舍弃精度
4、如果小数,小数点后边的数超过2^52,double就不精确了,开始舍弃精度
double的应用:
只是提供了小数支持,小数精确到16位左右。也能存储整数。
但是整数精确只能表示2^52以内的数,超过就不精确了。
所以19位以内的整数可以用long,16以内的小数和整数用double

热点内容
vivos7e手机服务器是什么 发布:2025-05-20 18:39:54 浏览:389
备份软件ftp 发布:2025-05-20 18:34:55 浏览:322
宅基地7解压 发布:2025-05-20 18:34:54 浏览:370
算法应用化 发布:2025-05-20 18:21:11 浏览:774
安卓手机上的日历怎么显示节假日 发布:2025-05-20 18:07:06 浏览:368
手机安卓音浪变小如何复原 发布:2025-05-20 18:04:44 浏览:166
phpcmd执行 发布:2025-05-20 18:04:31 浏览:780
网络机顶盒缓存清理 发布:2025-05-20 18:03:18 浏览:498
奶粉安佳美可卓哪个好 发布:2025-05-20 18:03:10 浏览:504
java编译程序包不存在 发布:2025-05-20 18:00:58 浏览:93