天天看点

进制转化(正整数)

由于本菜鸟还是学生,现在还面临着期末论文考试苦恼,所以,只更新这一篇关于正整数间的进制转化。。。(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进制了!!!

如果大佬看到了,请各位大佬斧正啊!!!

转载请标明出处!!!