整型
整型: 没有小数,包含负数,不同平台不会改变其取值范围分为以下4种
类型 | 字节数 | 取值范围 |
---|---|---|
int | 4 | |
short | 2 | |
long | 8 | |
byte | 1 |
向下转型时候如果超出了对应的取值范围数据会丢失精度比如byte v = (byte) 129;
1字节 = 8位
取值范围公式(n为位数):
为什么最大值为 而不是 呢?首先来了解下二进制,原码,补码,反码的概念帮助我们理解。
二进制
无论是图形图像,电子设备,传输数据归根到底都是 0 与 1 的信号处理。当前的计算机系统使用的基本上都是二进制,数据在计算机中主要是以补码的形式存储的。
举个列子,我们常用的十进制数据与二进制数据的对应关系
二进制 = 十进制 转换如下
1 = 1,10 = 2,100 = 4,1000 = 8,11000 = 24
11 = 3 等同于
10 = 2 等同于
转换其它进制类似就不一一举例了
原码、反码、补码
正数的原码补码反码是其一样的
负数的原码是正数原码符号为改为1; 反码是除了符号位其余各位取反;补码是其反码末尾加1的结果,
我们以一个byte为列1byte = 8位(首位符号位,0正1负)
正负类型 | 原码 | 反码 | 补码 | 数值 |
---|---|---|---|---|
最大值 | 01111111 | 01111111 | 01111111 | |
最小值 | 10000000 | 11111111 | 1000000 |
我们由补码由此反推出byte取值区间为