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

您所在的位置:网站首页 float的字节长度 int float double char 所占字节数及数字范围之间的关系

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

2023-09-25 15:32| 来源: 网络整理| 查看: 265

原码就是取 绝对值。反码是原码取反。补码是反码+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

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

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3