进制数概念
二进制
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。---摘抄至互动百科
十进制
我们现实生活中接触的就是。
十六进制
十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。
进制转换
原码、反码、补码
原码
最高位为符号位, 0 表示整数, 1 表示整数。
| 10进制 | 二进制(原码) |
|---|---|
| 3 | 00000000 00000000 00000000 00000011 |
| -3 | 10000000 00000000 00000000 00000011 |
反码
正数的反码与原码一样,负数的反码为:符号位取1,数值部分按位取反。
| 10进制 | 二进制(反码) |
|---|---|
| 3 | 00000000 00000000 00000000 00000011 |
| -3 | 11111111 11111111 11111111 11111100 |
反码是相互的,所以也可称:10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互为反码。
补码
正数的补码与原码相同,负数的补码为:符号位取1,数值部分为原码取反,然后再加1。在计算机中,负数以其正值的补码形式表达。
| 10进制 | 二进制(补码) |
|---|---|
| 3 | 00000000 00000000 00000000 00000011 |
| -3 | 11111111 11111111 11111111 11111101 |
备注:1、从补码求原码的方法跟原码求补码是一样的 ,也可以通过完全逆运算来做,先减一,再取反。 2、补码规定0没有正负之分
小结
- 原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示,数值部分用二进制形式表示。
- 反码表示法规定:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
- 补码表示法规定:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1. 正零和负零的补码相同,[+0]补=[-0]补=0000 0000B
Integer.MIN_VALUE
MIN_VALUE = 0x80000000 MAX_VALUE = 0x7fffffff 众所周知数值在计算机中以补码形式存储: MIN_VALUE: 补码:1000 0000 0000 0000 0000 0000 0000 0000 反码:1111 1111 1111 1111 1111 1111 1111 1111 = 补码 - 1 (最高位是符号位不能变哦) 原码:1000 0000 0000 0000 0000 0000 0000 0000 = -2^31 MAX_VALUE: 源码 = 反码 = 补码 :0111 1111 1111 1111 1111 1111 1111 1111 = 2^31 - 1