#M8316. C3.16 进制转换
C3.16 进制转换
数制概念
数制也称为计数制,是一种计数的方法,用一组固定的符号和统一的规则来表示数值的方法。包括数位、基数和位权三个要素。
- 数位: 指数字符号在一个数中所处的位置。
- 基数: 指在某种进位计数制中数位上所能使用的数字符号的个数。(例如十进制的基数为10)
- 位权: 数制中某一位上的1所表示数值的大小(所处位置的价值)。(例如十进制的567,5的位权是100,6的位权是10,7的位权是1)
进制概念
进制就是进位计数制,是人为定义的带进位的计数方法。对于任何一种进制 -- X进制,每一位上的数做运算时都是逢 X 进一(借位时借一当 X ),各数位上的数字可以使用 0,1,...,X - 1共 X 个数字来表示。
- 二进制: 由0,1组成,即“逢二进一”,基数是 2。
- 八进制: 由0~7组成,即“逢八进一”,基数是 8。
- 十进制: 由0~9组成,即“逢十进一”,基数是 10。
- 十六进制: 由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成,即“逢十六进一”,基数是 16。
进制转换
十进制转换为 X 进制
整数部分:“除 X 取余,逆序排列”
1. 将 X 作为除数,用十进制整数除以 X,可以得到一个商和余数;
2. 保留余数,用商继续除以 X,又得到一个新的商和余数; ......
3. 如此反复进行,每次都保留余数,用商接着除以 X,直到商为 0 时为止。
4. 先得到的余数作为 X 进制数的低位数字,后得到的余数作为 X 进制数的高位数字,依次排列起来。
例:将十进制数字 42 转为二进制
小数部分:“乘 X 取整,顺序排列”
1. 将十进制小数部分乘以 X,乘完后将乘积的整数部分取出;
2. 余下的小数部分继续乘以 X ,再将新乘积的整数部分取出;......
3. 如此反复进行,每次都取出整数部分,用剩下的小数部分接着乘以 X,直到乘积中的小数部分为 0,或者达到所要求的精度为止。
4. 把取出的整数部分按顺序排列起来,先取出的整数作为 X 进制小数的高位数字,后取出的整数作为低位数字。
例:将十进制数字 0.6875 转为二进制
注:绝大部分浮点数无法用二进制精确表示
X 进制转换为十进制
方法:“按权展开求和”
1. 对于整数部分,从右往左看,第 i 位的位权等于X ;
2. 对于小数部分,从左往右看,第 j 位的位权为X ^{−j}。
3. 把每个数位上数值与对应的位权相乘后,将乘积相加求和。
例:将二进制数字 101.11 转为十进制