由于本菜鸟还是学生,现在还面临着期末论文考试苦恼,所以,只更新这一篇关于正整数间的进制转化。。。(PS:我尽量多多更新关于IT方面的自己笔记(菜鸟笔记!!!))
进制之间的转化一般人都会举转化为二进制、八进制、十六进制这三个,但是这里我不要这样做,因为就本人而言,最开始学到的是转化为二进制,之后一段不短时间内都是处于懵逼状态······
那么,在这里举什么例子了,在此迷信一下,要考试了,就举个十进制中100转化为11进制的例子吧!
那用什么方法了!!!这是关键,其实这个方法在小学的时候就会,不过在小学的基础上推广了一下(个人观点,不喜勿喷)!!!那就是短除法了!!!!
先陪上图吧
(PS:值得一说的是除了写十进制外,其他进制的一般在数字右下角写上“(N)”来表示进制这个数是N进制的,特殊的除外,下期会说)
图片解读:
首先100除以11商9余1,在往后是9除以11商0余9,遇到商为0结束,再把余数从下往上抄写,形成11进制的91。
那么,为什么会这样了???
下面我进行深度解析一下:
这是十进制中的规律和常识:
相应的,N进制中也应有这样的常识:
原因分析:
十进制中为 满十进一,在满十再进一的方式,而且每一位上不可能出现十这个大小的数;(因此,十进制由0~9构成)
那么,对应的,
N进制中也应为 满N进一,再满N进一的方式,而且每一位上不可能出现N这个大小的数;(N进制由0~N-1构成)
那么问题来了,一位上应该只有一个数,十进制好说,不会出现想10这样占了两个位子的数,那么想想十进制往上怎么办呢???
这里,我们通常规定,在表示由十进制以上的数,我们用a或A来表示10;b或B来表示11……等等(先不说字母用完的情况)
那么,十进制转化为N进制的了解之后,来想想怎么将N进制再转化为十进制呢???
举两个例子(括号内当成下标吧):
91(11)=9*11(2-1)+1**11(1-1)=100(10);
a1(11)=10*11(2-1)+1**11(1-1)=111(10);
(PS:第二个例子最好动手验证一下)
我们发现,对于N进制从右往左第k位上的数乘以N(k-1),然后,相加就是十进制的数了。
这就是N进制转化为十进制的方法了!!!
那么,问题又来了,如果是从N进制转化为R进制呢???
如果你看明白上面的,这个应该难不倒你了,当然是把N进制转化为十进制,再从十进制转化为R进制了!!!
如果大佬看到了,请各位大佬斧正啊!!!
转载请标明出处!!!