一、进制的分类及其含义
计算机进制通常有: 十进制、二进制、八进制、十六进制
1. 十进制
人类算数采用十进制,可能跟人类有十根手指有关。亚里土多德称人类普遍使用十进制,只不过是绝大多数人生来就有10根手指这样一个解剖学事实的结果。
- 举例:10、150、1050…
2. 二进制
计算机中的数据都以二进制数字保存。
- 二进制:逢二进一。即只有0、1两个值。如:十进制的10在计算机内保存为二进制的1010
注意:计算机中信息的存储单位
位(Bit) :表示一个二进制数码0或1,是计算机存储处理信息的最基本的单位。字节(Byte) :一个字节由8个位
组成。它表示作为一一个完整处理单位的8个二进制数码。
3. 八进制
基数为八。Java中八进制数据要以0开头。如: 0123
- 八进制转换成二进制:只需将每个八进制数字替换为相对应的三个二进制位即可。
二进制 | 八进制 |
000 | 0 |
001 | 1 |
010 | 2 |
011 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
4. 十六进制:
二进制表示法太冗长,所以在程字中一般喜欢用十六进制
- 十六进制:基数为十六,逢十六进一。它用abcdef表示从0-9之.上的值
- Java中十六进制数据要以0x或0x开头。如: 0x23D
- 十六进制转换成二进制只需将每个十六进制数字替换为相对应的四个二进制位即可
二进制 | 十六进制 | 二进制 | 十六进制 |
0000 | 0 | 1001 | 9 |
0001 | 1 | 1010 | A |
0010 | 2 | 1011 | B |
0011 | 3 | 1100 | C |
0100 | 4 | 1101 | D |
0101 | 5 | 1110 | E |
0110 | 6 | 1111 | F |
0111 | 7 | ||
1000 | 8 |
5. 补码
事实上,计算机内的二进制数值是以补码形式表示的。
- 补码:一个正数的补码和其原码的形式是相同的,负数的补码是:将该数的绝对值的二进制形式,按位取反再加1。
- 由此可知,二进制补码数值的最高位(最左位)是符号位:该位为0,表示数值为正数:该位为1,表示数值为负数。
十进制 | 二进制 |
10 | 00000000 0000000 000000000001010 |
-10 | 11111111 11111111 11111111 11110110 |
- 使用原因:使用补码,可以将符号位和其它位统一处理,同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
二、进制的转换
1. 二进制数转换成十进制数
按权相加:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。
- 例:原码1011.01= 1X23+0X22+1X21+1X 20+0X2-1+1X2-2
= 8+0+2+1+0+0.25
=11.25
2. 十进制转换成二进制
整数部分: "除2取余,逆序排列"法
小数部分::"乘2取整, 顺序排列"法