不懂进制编程
㈠ 正在学习c语言,进制一直弄不懂
先来看进制是什么?
首先来看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
㈡ 不懂进制也能学编程吗
进制……
这是基础中的基础。
就是数数,123456789…码丛羡岁…
你说迟派樱不认识123能学数学么?
汗,说的就是二进制 十六进制。这个都不学,你还怎么学下去?
㈢ c语言中的进制怎么理解我不懂,只知道二进制是0,1 八进制0,到7 十进制是0,到9
满2进1,就穗稿带是0,1。
满8进1,就是0到7,一共8个数。
满10进1,就是0到9,一共10个数。
满16进1,就是0到F,一共16个数。
手机敬拿码字不容易,希望获得采纳。猜芦
㈣ 我想学编程16进制怎么弄懂老是看不懂
16进制和10进制没什么区别
只不过是谈羡镇为了方便二派山进制的阅读
因为从含粗小都是学10进制,10进制10个数码,16进制16个数码
逢16进位呗