进制转换(二、八、十、十六进制转换)
1、进制之间都可以互相转换
- 二进制(Binary简写B, 添加在数字后面例 (010101)B) 0和1;
- 八进制(Octal简写O, 添加在数字后面(076451)O) 基数8,每列0-7;
- 十进制(Decimal简写D, 添加在数字后面) 基数10,每列0-9;日常使用,每进1位表10倍;
- 十六进制(Hexadecimal简写H, 添加在数字后面),基数16, 每列使用0-9,然后a-f;
2、二、八、十六进制转十进制[例:(101011)B=(53)O=(43)D=(2B)H]
- Remark:十进制转十进制,看到这是不是有点疑惑,往下看
- 例如(234)D,十进制我们读数两百三十四,那么计算
- 4 * 10^0 = 4;
- 3 * 10^1 = 30;
- 2 * 10^2 = 200;
- 读数 4 + 30 + 200 = 234;
- 其他进制转换成十进制把 10 换成其他进制数就行。如下
- 例如(234)D,十进制我们读数两百三十四,那么计算
- 二进制转十进制
- 例(101011)B, 从低位到高位(右往左依次计算), 第0位权值位2的0次方,第1位权值位2的1次方,第2位权值位2的2次方,依次类推;
- 1 * 2^0 = 1;
- 1 * 2^1 = 3;
- 0 * 2^2 = 0;
- 1 * 2^3 = 8;
- 0 * 2^4 = 0;
- 1 * 2^5 = 32;
- 读数把值加起来 1+3+0+8+0+32 = 43; 那么 (101011)B=(43)D;
- 例(101011)B, 从低位到高位(右往左依次计算), 第0位权值位2的0次方,第1位权值位2的1次方,第2位权值位2的2次方,依次类推;
- 八进制转十进制
- 八进制转10进制(53)O;累计方法和二进制一样,逢八进一, 最大不超过7;
- 3 * 8^0 = 3;
- 5 * 8^1 = 40;
- 读数 3 + 40 = 43; (53)O = (43)D;
- 八进制转10进制(53)O;累计方法和二进制一样,逢八进一, 最大不超过7;
- 十六进制转十进制
- (2B)H, 也是低位到高位一次计算, 累计
- 11 * 16^0 = 11;
- 2 * 16^1 = 32;
- 读数 11 + 32 = 43; (2B)H = (43)D;
- (2B)H, 也是低位到高位一次计算, 累计
3、十进制二进制、八进制、16进制(最后除不尽结束)
- 十进制转二进制例如(43D);
- 除以取余数, 读数倒着读;
- 商43除以2, 商21余数为1;
- 商21除以2, 商10余数为1;
- 将商10除以2,商5余数为0;
- 将商5除以2,商2余数为1;
- 将商2除以2,商1余数为0;
- 将商1除以2,商0余数为1;
- 读数 (101011)B;
- 十进制转八进制例如(69)D
- 除了取整数
- 商69除以8,商8余数5;
- 商8除以8,商1余数0;
- 商1除以8, 商0余1;
- 读数(105)H;
- 十进制转十六进制(165)D
- 取余读数
- 165 / 16, 商10(A)余5;
- 10 / 16, 商0余数为10;
- 读数 (A5)H;
4、二进制转十六进制、八进制
- 二进制转十六进制(1010100.010101)B[三合一法]
- 取小数点向左(向右)三位计算,如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。REMARK 向左取左边补零,向右取右边补零;
- 向左 100 => 0 + 0 + 4 = 4;
- 010 => 0 + 1 * 2^1 + 0 = 2;
- 001(补齐) => 1 + 0 + 0 = 1;
- 向右 010 => 0 + 2 + 0 = 2;
- 101 => 1 + 0 + 4 = 5;
- 读数124.25;
- 八进制转二进制(124.25)O[一分三法]
- 5 => 101;
- 2 => 010;
- 4 => 100;
- 2 => 010;
- 1 => 001;
- 读数1010100.010101
- 二进制转十六进制(11010111.10111010)B[四合一法]
- 小数点向左(向右)取四位, 位数不够补零, 右取右补零, 左取左补零
- 向左
- 0111 => 1 + 2 + 4 + 0 = 7;
- 1101 => 1 + 0 + 4 + 8 = 13(D);
- 向右
- 1011 => 1 + 2 + 0 + 8 = 11(B);
- 1010 => 0 + 2 + 0 + 8 = 10(A);
- 读数(D7.BA)H;
- 十六进制转二进制(D7.BA)H[一分四法];
- D => ???? (1101)
- 7 => ???? (0111)
- ????
- ????
练习题 (520)D (5201314)D (9527)H、
- (520)D转二进制 =>
- 520 / 2 = 260 余0;
- 130余0;
- 65余0;
- 32余1;
- 16余0;
- 8余0;
- 4余0;
- 2余0;
- 1余0;
- 1余1;
- 读数(1000001000)B
- (9527)H =>转十进制
- 7*16^0 = 7;
- 2*16^1 = 32;
- 5*16^2 = 1280;
- 9*16^3 = 36,864;
- 读数(38,183)D;
- (5201314)H转二进制
- 5 => 0101;
- 2 => 0010;
- 0 => 0000;
- 1 => 0001;
- 3 => 0011;
- 1 => 0001;
- 4 => 0100;
- 读数 (101001000000001001100010100)B
- (5201314)D转进制16进制
- 325082余2