进制转化
二进制:由2个数字组成,有0 和 1 例: 0b101
八进制:由8个数字组成,有0,1,2,3,4,5,6,7 例: 0o127
十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9 例: 250
十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(字母大小写都可以,分别代表10,11,12,13,14,15) 例:0xff 0Xff 0XFF
2.1 二进制转化为十进制
例如:0b10100101
运算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7=
1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165
例如:0o127
运算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87
#例如: 0xff
运算:15*16^0 + 15*16^1 = 255
2.4 十进制转变为二进制
426 => 0b110101010
运算过程: 用426除以2,得出的结果再去不停地除以2,直到除完最后的结果小于2停止,在把每个阶段求得的余数从下到上依次拼接完毕即可;
2.5 十进制转化为八进制
426 => 0o652
运算过程: 用426除以8,得出的结果再去不停地除以8,直到除完最后的结果小于8停止,在把每个阶段求得的余数从下到上依次拼接完毕即可;
2.6 十进制转化成十六进制
426 => 0x1AA
运算过程: 用426除以16,得出的结果再去不停地除以16,直到除完最后的结果小于16停止,在把每个阶段求得的余数从下到上依次拼接完毕即可;
2.7
二进制与八进制对应关系:
八进制 | 二进制 |
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
例:1010100101
八进制:从右向左 3位一隔开 不够三位用0补位 变成:
001 010 100 101
0o 1 2 4 5
2.8
二进制与十六进制对应关系:
十六进制 | 二进制 |
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
a | 1010 |
b | 1011 |
c | 1100 |
d | 1101 |
e | 1110 |
f | 1111 |
例:1010100101
十六进制:从右向左 4位一隔开 不够四位用0补位 变成:
0010 1010 0101
0x2a5
2.8 八
八进制和十六进制相互转换时,要用二进制作为中间数值,然后在转换成对应的进制;
三 . 原码、补码、反码
3.1原码 或 补码 都是二进制数据
原码: 二进制的表现形式
反码: 二进制码0变1,1变0叫做反码,.(首位符号位不取反)
补码: 二进制的存储形式
转换规律:
如果是一个正数: 原码 = 反码 = 补码
如果是一个负数: 原码 与 补码 之间 , 互为取反加1
原码 = 补码取反加1 给补码求原码
补码 = 原码取反加1 给原码求补码
ps:计算器中的数值不能相减,只能相加,所有数值都是转换成补码的形式相加,然后得出最终结论;