整数和浮点数在内存中储存的形式

整数

整数的二进制表示法有三种,即原码、反码、补码。

三种表示方式均有符号位和数值位

符号位位于数值位最高位的那一位,分别用0和1表示,0表示正数,1表示负数。

数值位,除最高位的那一位外其他都是数值位。

正整数的原码、反码和补码都相同,

负整数不同,负整数的反码等于原码二进制位上除符号位外,每一位按位取反,即0变1,1变0。

负整数的补码等于反码+1。

浮点数

二进制浮点数的存储方式通常遵循IEEE 754标准,这个标准规定了单精度和双精度浮点数的存储格式。

对于单精度浮点数,它使用32位来表示一个浮点数,按照如下格式进行存储: 1位:符号位(0代表正数,1代表负数) 8位:指数部分 23位:尾数部分

对于双精度浮点数,它使用64位来表示一个浮点数,按照如下格式进行存储: 1位:符号位(0代表正数,1代表负数) 11位:指数部分 52位:尾数部分

在这两种格式中,指数部分用来表示浮点数的阶码,尾数部分则用来表示浮点数的尾数。根据指数部分的不同取值,可以表示不同范围的浮点数。这种存储格式可以有效地表示各种大小的浮点数,并提供一定程度的精度。

即  

例如:十进制的5.0,二进制为101.0,相当于1.01*2^2

可得出, S = 0, M = 1.01, E = 2

M

1<=M<=2,可写成1.xxxx,xxxx比哦是小数部分。计算机内部储存时,储存的是小数部分,

例如M = 1.01,计算机储存时会储存01,舍去1,但在读取时,计算机会再加回去。

E

如果E为8位,它的取值范围是0—255;如果E为11位,取值范围0—2047。

IEEE754规定,存入内存时E的真实值必须加上一个中间数,对于8位的E来说,中间数为127;11位的E,中间数为1023

就是为了保证无论储存的是正数还是负数都是一种形式(方便计算机使用)

E在内存取出时还分三种情况
1.E不全为0或不全为1

指数E减去127(或1023),得到真实值,再将有效数字M前加上第一位1

以0.5为例,二进制形式为0.1,由于正数部分必须为1, 表示为1.0*2^-1,E = -1,储存时为(-1)+127 = 126。M为0,位数不足时补0.

0 01111110  00000000000000000000000

2.E全为0

浮点数指数E = 1-127(或1-1023)为真是值,有效数字不在加1,还原为0.xxxxxxx的小数

无限接近于0

3.E全为1

和2.相反,接近于无穷,正负取决于符号位s

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值