四个字节的浮点数与八个字节的整数表示范围大小的对比

八个字节整数表示的数值范围:

八个字节共64位,最左边位符号位占1bit,后面数字位占63bit,可表示的数值范围,1111...1111(1后面63个1)~0111...1111(0后面63个1),63个1是多大的数呢?

换算成十进制就是(2^62+2^61+...+2^1+2^0),这样表示太过麻烦,我们可以换一种方式考虑。

对于二进制来说,有以下规律:

10 -1=1;

100-11=1;

1000-111=1;

...

以此类推:1000...0000(1后面63个0)-1111...1111 (63个1)=1;

因此0111...1111(0后面63个1)就可以表示为1000...0000(1后面63个0)-1,即:

1×2^63+0×2^62+...+0×2^1+0×2^0-1=2^63-1,这就是八个字节整数能表示的最大值;

同理可得1111...1111(1后面63个1)= - (2^63-1)。

需要注意的一点是,由于0000...0000(0后面63个0)与1000...0000(1后面63个0)都数值都为0,一个为﹢0一个为-0,参考一个字节取值范围的规定,﹢0表示真正的0,-0表示的值=最小值-1,即为;

- (2^63-1)-1= - 2^63,这就是八个字节整数能表示的最小值;

四个字节浮点数表示的数值范围:

单精度浮点数 float:32 位,符号位 S 占 1 bit,指数 E 占 8 bit,尾数 M 占 23 bit

浮点数格式为:N=(-1)^S*M*R^E

S:符号位,取值 0 或 1,决定一个数字的符号,0 表示正,1 表示负

M:尾数,用小数表示,例如 1.345 * 10^0,1.345 就是尾数

R:基数,表示十进制数 R 就是 10,表示二进制数 R 就是 2

E:指数,用整数表示,例如 10^-1,-1 即是指数

由于指数E有正负,其所占的8bit最左边也为符号位,则E的范围为111111111~011111111即

为-128~127;尾数M最大值为小数点后23个1,约等于1,所以四个字节浮点数表示的最大值为

1×2^127,最小值为-2^127。

总结:

四个字节浮点数表示的数值范围:-2^127~2^127;

八个字节整数表示的数值范围:- 2^63~2^63-1;

由此可见,四个字节浮点数表示的数值范围要比八个字节整数表示的数值范围大的多。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值