进制转换专题
1.进制基本概念
- 基数:进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。如十进制的基数为10,含0~9十个数字
- 位权:进位制中每一固定位置对应的单位值。如十进制的个位位权为10^0(1) 、十位位权为10^1(10)、 百位位权为10^2(100),以此类推
2.进制分类
- 十进制:生活中最常用的进制,满十进一,包含数字0~9(任意十进制数拆分开都是由这十个基数构成)
- 八进制:以0开头,满八进一,包含数字0~7(任意八进制数拆分开都是由这八个基数构成)
- 十六进制:以0x或0X开头,包含数字0~9、 字母 A~ F或a~f; A/a代表数字10,F/f代表数字15(任意十六进制数拆分开都是由这十六个基数构成)
- 用字母代替10~15可避免歧义,如果不引入字母的话,如0X931087中的10是看作十还是一和零,容易产生歧义
3.二/八/十六进制转十进制
- 拆分十进制数
- 从十进制数的拆分出发,对比得到其他进制转为十进制的方法。
- 2354=2x10^3 + 3x10^2 + 5x10^1 + 4x10^0=2354 ---> 每一位的数与该位位权相乘后相加求和
- 拆分二进制
- 二进制数只有0和1两种数字组成
- 二进制数每一位的位权为2^n
- (1100)2 = 1x2^3 + 1x2^2 + 0x2^1 + 0x2^0 = 12
- 转换方法
- 对于形式化的进制表示可以从0开始,对数字的各个数位进行编号,即个位起往左依次为编号0,1,2,……;对称的,从小数点后的数位则是-1,-2,……
- 十进制数110,其中百位上的1表示1个10^2, 即100,十位的1表示1个10^1, 即10,个位的0表示0个10^0,即0
- 二进制数110,其中高位的1表示1个2^2, 即4,低位的1表示1个2^1, 即2,最低位的0表示0个2^0,即0
- 十六进制数110,其中高位的1表示1个16^2, 即256,低位的1表示1个16^1, 即16,最低位的0表示0个16^0,即0
- 总结
- 在数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,这种关系称为数的位权
- 十进制数的位权是以10为底的幂,二进制数的位权是以2为底的幂,十六进制数的位权是以16为底的幂。数位由高向低,以降幂的方式排列。无论是二进制、八进制还是十六进制,各位上的位权与该位上的数相乘,最后再相加得到的和就是它转为十进制的结果。
4.十进制转为二/八/十六进制
- 方法1(基础方法):短除法,除到商为0截止;余数要倒序相连
- 注意:十进制转为多少进制,除数就是多少(除二取余 除八取余 除十六取余)
- 案例
![]()
![]()
- 方法2(进阶方法)
- 原理:二进制转十进制是由若干个2的整数次幂相加得到的,那反过来,十进制转为二进制可以拆分为若干个2的整数次幂的和。
- 必备:2的0到10的幂次方
- 案例
// 计算十进制数345的二进制数 // 离345最近的是256 345-256=89 // 离89最近的64 89-64=25 // 离25最近的16 25-16=9 // 离9最近的8 9-8=1 // 所以345 = 256+64+16+8+1 // 1、2、4、8、16、32、64、128、256、512 、1024中用到的写1,未用到的写0 // 即1(1)、 2(0)、4(0)、8(1)、16(1)、32(0)、64(1)、128(0)、 256(1)、 512(0) 、1024(0) // 然后从后往前把括号里的数据读出来:0010 1011 001 省去无用的0,即101011001 // ====================或者========================= // 345 = 256+64+16+8+1 = 2^8 + 2^6 + 2^4 + 2^3 + 2^0 // = 1x2^8 + 0x2^7 + 1x2^6 + 0x2^5 + 1x2^4 + 1x2^3 + 0x2^2 + 0x2^1 + 1*2^0 // 上式中与2的整数次幂相乘的1或0就是代表整数次幂的位权上的1或0,将2^8到2^0左边的0或1从左往右 // 排列依然是 101011001



浙公网安备 33010602011771号