整型

整型

整型: 没有小数,包含负数,不同平台不会改变其取值范围分为以下4种

类型 字节数 取值范围
int 4 -2^{31} - (2^{31} - 1)
short 2 -2^{16} - (2^{16}-1)
long 8 -2^{64} - (2^{64}-1)
byte 1 -2^8-(2^8-1)

向下转型时候如果超出了对应的取值范围数据会丢失精度比如byte v = (byte) 129;

1字节 = 8位
取值范围公式(n为位数): -2^n-(2^n-1)

为什么最大值为 2^n-1 而不是 2^n 呢?首先来了解下二进制,原码,补码,反码的概念帮助我们理解。

二进制

无论是图形图像,电子设备,传输数据归根到底都是 0 与 1 的信号处理。当前的计算机系统使用的基本上都是二进制,数据在计算机中主要是以补码的形式存储的。

举个列子,我们常用的十进制数据与二进制数据的对应关系

二进制 = 十进制 转换如下

1 = 1,10 = 2,100 = 4,1000 = 8,11000 = 24

11 = 3 等同于 1*2^0+1*2^1=3

10 = 2 等同于 0*2^0+1*2^1=2

转换其它进制类似就不一一举例了

原码、反码、补码

正数的原码补码反码是其一样的
负数的原码是正数原码符号为改为1; 反码是除了符号位其余各位取反;补码是其反码末尾加1的结果,
我们以一个byte为列1byte = 8位(首位符号位,0正1负)

正负类型 原码 反码 补码 数值
最大值 01111111 01111111 01111111 2^0+2^1+2^2+...+2^6=127
最小值 10000000 11111111 1000000 1*2^7=128

我们由补码由此反推出byte取值区间为[-128,127]

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容