int float double char 所占字节数及数字范围之间的关系

原码就是取 绝对值。反码是原码取反。补码是反码+1。

int

int 在32/64位系统中占4个字节,一个字节能含八位二进制数字0/1,四个字节含32位,所以表示的数的范围为-(2的31次方-1)到(2的31次方-1),数字为-2 147 483 647~2 147 483 647.

float

float占四个字节,对于单精度浮点数(float)来说,有一位符号位,指数位共8位,尾数共23位。指数能够表示的指数范围为-128~127。尾数为23位。当尾数全1时再加上小数点前面的1,指数取到最大正数127(8位,正数最大127,负数最小-128),浮点数取得正数的最大值。

+1.111111111111111111111*2^127(1.后面23个1,由于尾数的范围1~2,其最高位总为1,故只需存取小数部分,所以小数为是23位1),https://jingyan.baidu.com/article/425e69e6e93ca9be15fc1626.html,解释出二进制1.11111111111111111111111=1+1/2+1/4+1/8+1/16..........,约等于2,2*2^127=3.4*10^38。为3.4*10^38负数亦然。

double

double占八个字节,Double的计算与此类似,double的符号位为52位,指数为62~52位,共11位。表示的范围为-1024~1023。尾数为51~0。表示的范围为+1.111111111111111111111*2^1023(1.后面52个1)为1.7*10^308。负数亦然。

char

占一个字节,原码就是取 绝对值。反码是原码取反。补码是反码+1,

char类型是8位,singed char 原码 :1111 1111-01111111   最高位为符号位,1负0正  - 127 --- +127

,

-127补码10000001,还有一个 1000 0000 用它来表示 -128,因为没有负0的概念。计算机里负数都是用补码来表示。

所以就是-128- 127

计算机本身确实以机器的思维进行处理的”。就表现为“计算机对数据的处理其实是以‘补码’的形式

 

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值