范文无忧网学习方法学习技巧

正在学习C语言进制一直弄不懂

01月18日 编辑 fanwen51.com

[正在逼近某个红色神秘物体]正在逼近某个神秘红色物体 NASA的新视野号宇宙探测器目前正在加速飞向某个神秘的柯伊伯带天体,它的名字叫MU69。 最近人类对这个遥远物体的观察显示,它有一个非常红的表面,也许...+阅读

先来看进制是什么?

首先来看10进制数:

对于一个十进制数,如:22222,有什么特点呢?

(1)虽然每个位置都是2,但是其价值“权重”是不同,从右边数,第一个2的权重是1,第二个2的权重是10,即2X10,第三个2的权重是100=10^2,第四个2的权重是1000=10^3,第五个2的权重是10000=10^4。

(2)可以扩展为一个多项式:22222=2X10^4+2X10^3+2X10^2+2X10^1+2X2^0

(3)数字里不存在超过10的位(即位的范围只是0-(10-1)

(4)在做加法运算时,逢10进1,如6+5=11;在做减法时,对应位不够减向左借10,如11-5=6

接着,我们推广到任意 N 进制数:

有了十进制基本概念后,我们可以任意构造任意进制数了,而不仅是2,8,16进制。把上面的内容复制到下面,并把10改为N就OK了。

对于一个 N 进制数(设N>2),如:22222,有什么特点呢?

(1)虽然每个位置都是2,但是其价值“权重”是不同,从右边数,第一个2的权重是1,第二个2的权重是 N ,即 2 XN,第三个2的权重是 ?=N^2,第四个2的权重是 ? =N^3,第五个2的权重是 ?=N^4。

(2)可以扩展为一个多项式:22222=2X N^4+2X N^3+ 2X N^2+2X N^1+2X N^0

(3)数字里不存在超过 N 的位(即位的范围只是0-(N-1)

(4)在做加法运算时,逢 N 进1,如6+5=13(8进制);在做减法时,对应位不够减向左借 N,如11-5=3(设为7进制运算)

把一个N进制转换成对应10进制数的方法:

当然任何一个 N 进制数都可以转换成十进制数,方法就是多项式展开后,计算多项式的值就可以了:

(abcde)n=aXN^4+bXN^3+cXN^2+dXN^1+eXN^0

最后,我们看一个10进制转换成N进制的例子:

如果想把一个10进制变为一个 N 进制数,用辗转相除取余法,可以分别得到N进制的位,把这些位组合起来就行了。

例,设一个10进制数 Y 可以展开为多项式:aXN^4+bXN^3+cXN^2+dXN^1+eXN^0 ,

则可以通过几步得到一些余数:

i) Y%N(取余数): (aXN^4+bXN^3+cXN^2+dXN^1+eXN^0 ) % N,这里,前四项都可被N除尽,所以余数是e;

ii)Y/N =>Y(Y除以N后取整): (aXN^4+bXN^3+cXN^2+dXN^1+eXN^0 ) / N ==>aXN^3+bXN^3+cXN^1+dXN^0(即除不尽的数被丢掉,且其它项都约掉了一个N)

重复i),ii),直到Y=0时,可以依次得到位d,c,b,a

最后把所有位按照反序排列可以得到新的 N 进制数,此例的 N 进制 即是:abcde

延伸阅读:

我目前正在学小车谁能告诉我上路后的驾车技巧都有哪些驾驶经验技巧三十条: 一、当你夜晚在下雨的路段行驶了一段距离后,前面突然没雨,此时你可能加快你的车速,认为前面是没有下雨的,路面应该是干的,这是个不好的判断。因为前面刚刚下...

推荐阅读
图文推荐
栏目列表