2进制是转换的媒介
10进制对位法 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
8进制对位法 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
16进制对位法 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
-
10进制
-
低八位:2048 1024 512 256 128 64 32 16
高四位:128 64 32 16
低四位:8 4 2 1
-
16进制
-
10-A 11-B 12-C 13-D 14-E 15-F
eg. 十进制数字:272
10进制对位法 |
256 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
2进制结果 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
8进制对位法 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
2进制结果 |
|
|
|
|
|
|
1 0 0 |
0 1 0 |
0 0 0 |
8进制结果 |
|
|
|
|
|
|
4 |
2 |
0 |
16进制对位法 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
2进制结果 |
|
|
|
|
|
|
0 0 0 1 |
0 0 0 1 |
0 0 0 0 |
16进制结果 |
|
|
|
|
|
|
1 |
1 |
0 |
2: 100010000;8: 420; 16:110
eg. 十进制数字:147
10进制对位法 |
256 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
2进制结果 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
8进制对位法 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
2进制结果 |
|
|
|
|
|
|
0 1 0 |
0 1 0 |
0 1 1 |
8进制结果 |
|
|
|
|
|
|
2 |
2 |
3 |
16进制对位法 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
2进制结果 |
|
|
|
|
|
|
|
1 0 0 1 |
0 0 1 1 |
16进制结果 |
|
|
|
|
|
|
|
9 |
3 |
2: 10010011; 8: 223 ;16:93
eg. 16进制数字:F7
16进制对位法 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
8 4 2 1 |
2进制结果 |
|
|
|
|
|
|
1 1 1 1 |
0 1 1 1 |
10进制对位法 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
2进制结果 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
10进制结果 |
|
|
|
|
|
|
|
255 |
8进制对位法 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
4 2 1 |
2进制结果 |
|
|
|
|
|
0 1 1 |
1 1 0 |
1 1 1 |
8进制结果 |
|
|
|
|
|
7 |
6 |
7 |
2: 11110111; 8: 367 ;16:247
-
逻辑运算符
-
& 与运算:同 1 为 1 ,否则为 0
-
| 或运算:有 1 为 1,否则为 0
-
^异或运算:相同为 1 ,否则为 0
-
<<左移运算:按照2进制向左移动两位
-
>>右移运算:按照2进制向右移动两位
运算 |
结果 |
272 & 147 |
16 |
272 | 147 |
403 |
272 ^ 147 |
387 |
35>>2 |
8 |
35<<2 |
140 |
二进制的最高位定义为符号位,最高位0
表示正数,1
表示复数。
机器数:连同符号位一起数值化了的值
真值:机器数代表的真实的数值
数值位:真值的绝对值
正数二进制,原码、补码、反码都是同一个
复数二进制,补码 = 反码 + 1
负数的位运算 |
-35>>2 |
第一步 |
正数 35 的原码 0010 0011 |
第二步 |
取-35 的原码 1010 0011 (真值:-010 0011) |
第三步 |
取-35的反码1101 1100 |
第四步 |
取-35的补码1101 1101 |
第五步,移位 |
右移2位后的补码 -35>>21111 0111 |
第六步 |
补码减一获得负数反码1111 0110 |
第七步 |
将反码调整会原码,获得位移后的负数原码 1000 1001 ,答案 -9 |
真值 |
原码 |
反码 |
补码 (最终的显示) |
-180 (-1011 0100) |
1111 1111 1011 0100 |
1111 1111 0100 1011 |
1111 1111 0100 1100 |
-168(-1010 1000) |
1111 1111 1010 1000 |
1111 1111 0101 0111 |
1111 1111 0101 1000 |