1.1 数制及其转换

N 进制

从广义上说,N 进制可说成是任意进制。但现实中0、1等进制是毫无意义的,所以 N clip_image002[21] 2,且为正整数。在此引出N进制的目的有两个;第一是借助N进制把十进制与其他进制的转换关系归纳在一起;第二是把进制间的转换关系向任意进制推广。

(1)十进制与 N 进制的相互转换法则

把十进制与二进制的相互转换关系向其他进制推广,可以得出以下结论:

① 二化十,多项式;十化二,整数除2取余,小数乘2取整。

② 三化十,多项式;十化三,整数除3取余,小数乘3取整。

③ 四化十,多项式;十化四,整数除4取余,小数乘4取整。

④ 八化十,多项式;十化八,整数除8取余,小数乘8取整。

……

可以归纳为:

“N 化十,多项式;十化 N,整数除 N 取余,小数乘 N 取整。”

(2)任意进制间的转换法则

任意进制间的转换是指三进制与五进制、六进制与九进制等之间的转换。按照十进制与 N 进制的转换法则,任意进制之间的转换可以以十进制为基准,建立任意进制之间的转换关系,并把这种转换关系称为“ N → 十,十 → N ”。比如,三化五,先将三进制数转化为十进制数,再将十进制数转化为五进制数。

当两种进制的权为整幂倍时,如二进制与八进制、二进制与十六进制等,两种进制之间就可以直接利用“拼与拆”的法则进行转换。

借助 N 进制的概念可以根据需要定义一种进制,也可以把一种进制下的信息转换为另一种进制下的数据,以达到交换方便或信息保密的目的。比如,可以把26个英文字母定义为二十六进制或二十七进制,把十二生肖定义为十二进制或十三进制等。

难点分析

理解二进制、八进制、十六进制或其他任意进制,首先可以从我们最熟悉的十进制入手,分析并掌握十进制的特点,向其他进制推广,建立起二、八、十六及任意进制向十进制转换的方法。然后再从进位记数制共性出发,找出十进制向二、八、十六及任意进制转换的方法。此外,通过对二、八、十六进制的分析,可以得出二进制与八进制、十六进制存在着“亲缘”关系。理解并掌握上述3个问题的分析方法,就会很自然地得出记数制相互转换的若干便于记忆的法则。

法则1 二化十,多项式。即把二进制数(或八进制数、十六进制数及任意进制数)转换成十进制数,可将该数展开成一个多项式,然后再用十进制计算该多项式,即可完成转换。

法则2 十化二,整数除2取余;小数乘2取整。若是十进制整数转换为二进制数,可将该整数逐次用2去除,直到商得零为止,依次排列每次所得到的余数,即为十进制整数所对应的二进制数(将余数由后至前依次排列)。若十进制数是小数,可将该数逐次用2去乘,并依次排列每次相乘所得的整数,即为十进制小数所对应的二进制数(将整数由前至后依次排列为小数)。

值得注意的是,某些十进制小数进行十化二时,出现化不尽的问题,表现为小数部分总不会为0。例如,十进制的0.1、0.6等均化不尽。当出现十化二化不尽时,一般是根据要求取近似值。例如,按给定位取近似值,或者按给定位数,同时采用0舍1入的方法取近似值。

法则3 二化八,三位一拼;八化二,一拆为三。即把二进制数的3位拼成八进制数的一位,而八进制数的一位拆成二进制数的3位。

法则4 儿化十六,四位一拼;十六化二,一拆为四。即把二进制数的4位拼成十六进制数的一位,而十六进制数的一位拆成二进制数的4位。

1)N 进制的定义

N 进制是一种有 0~N-1,共 N 个基数字,逢 N 进一的有权记数制。基数字的任意排列,加上正号、负号、小数点可以构成 N 进制的整数、负数、整数、小数。

显然,当 N = 2 时,为二进制;当 N = 8 时,为八进制;当 N = 10 时,为十进制;当 N = 16 时,为十六进制;当 N = 24 时,为二十四进制,以此类推。

2)N 进制数的多项式表示

clip_image002 为权系数,clip_image0025 为权位,N 进制数 clip_image0027 可以表示为权系数与位权乘积之和的多项式:

clip_image00211(m,n均为正整数)

显然,当 N = 2,clip_image002 取值0~1,clip_image0025 = clip_image00217 时,上式则为二进制数的多项式;当 N = 10,clip_image002 的取值为0~9时,clip_image0025 = clip_image00223 时,上式则为十进制数的多项式表示。以此类推,可以得出任意进制数的多项式表示。因此,了解了N进制就了解了任何进制。

3)N 进制数的相互转换

(1)二、八、十六进制的相互转换

十化二也可以借助八进制进行,即先做十化八,再做八化二。十化十六也可以借助二进制进行,即先做十化二,再做儿化十六。总之,在相互转换中可以把二、八、十六进制看成是同一进制的3种不同表现形式对十进制进行转换。

(2)任意进制的转换

当 N 为2的整数幂时,如 N 等于clip_image00225clip_image00227clip_image00229clip_image00231,…,N 进制与二进制的转换关系则是一种拆、拼的关系。例如,三十二进制与二进制的关系是“一拆为五,五位一拼”的关系。

当 N 既不为10,也不等于2及2的整数幂时,例如 N 等于3、5、6、7、9等,N 进制之间又该如何转换呢?比如,三进制与五进制,六进制与七进制,九进制与十二进制的转换等。这时可将转换的一方化为十进制,而后就成了十与 N 的转换关系了。

参考文献:

[1]刘克武.软件设计师考试科目1:计算机与软件工程知识——考点解析及模拟训练[M].北京:清华大学出版社,2005.1.

转载于:https://www.cnblogs.com/YinYueJing/p/3930282.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值