计算机进制有:十进制、二进制、八进制、十六进制.....
二进制
- 计算机中的数据都以二进制数字保存。二进制:逢二进一。只有0、1两个值。
- 计算机中信息的存储单位:位(bit),表示一个二进制数码0或1,是计算机存储处理信息的最基本单位。
- 字节(Byte),一个字节由8个位组成。他表示作为有一个完整处理单位的8个二进制数码。
八进制
- 基数为8,java中八进制数据要以0开头,如0123
十六进制
- 基数为十六,逢十六进一。用abcdef表示0-9之上的值
- java中十六进制数据要以0x或0X开头。如0x23D
- 十六进制转换成二进制只需将每个十六进制数字替换为相应的四个二进制数即可
二进制 | 十六进制 | 二进制 | 十六进制 |
0000 | 0 | 1010 | A |
0001 | 1 | 1011 | B |
0010 | 2 | 1100 | C |
0011 | 3 | 1101 | D |
0100 | 4 | 1110 | E |
0101 | 5 | 1111 | F |
0110 | 6 |
|
|
0111 | 7 |
|
|
1000 | 8 |
|
|
1001 | 9 |
|
|
补码:
事实上,计算机内的二进制数值是以补码的形式表示的。
-
正数的补码和其原码的形式是相同的;
-
负数的补码是该数的绝对值的二进制形式,按位取反再加1;
二进制补码数值的最高位(最左位)是符号位,该位为0,表示数值为正数;该位为1,表示数值为负数。
主要原因:使用补码,可以将符号位和其他位统一处理;同时,减法也可以按加法来处理。
另外,两个用补码表示的数值相加时,如果最高位有进位,则进位被舍弃。
二进制转成十进制:
按权相加,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。
如 1011.01 = 1*2^3+0*2^2+1*2^1+1*2^0+0**2^(-1)+1**2^(-2)
= 8+0+2+1+0+0.25
= 11.25
十进制转成二进制:
整数部分:“除2取余。逆序排列”法
小数部分:“乘2取整,顺序排列”法
如 十进制数:89
2 | 89 —— 1
2 | 44 —— 0
2 | 22 —— 0
2 | 11 —— 1
2 | 5 —— 1
2 | 2 —— 0
1
89 ==> 1011001
如 十进制数:0.37
0.37*2=0.74 —— 0
0.74*2=1.48 —— 1
0.48*2=0.96 —— 0
0.96*2=1.92 —— 1
0.92*2=1.84 —— 1
0.84*2=1.68 —— 1
0.68*2=1.36 —— 1
0.36*2=0.72 —— 0
0.72*2=1.44 —— 1
0.37 ==> 0.010111101
其他进制转换:先转为二进制,再转换为其他进制。
二进制转成十六进制
4个二进制位是一个十六进制位
0101-1010 二进制数 —> 十进制数
5 10 十六进制中没有10,10 —> A
5 A 十六进制数 即为 0x5A
二进制转成八进制
3个二进制位是一个八进制位
001-011-010 二进制数 —> 十进制数
1 3 2 八进制数 即为 0132