首先抛开你的10进制思维,再来看看如下内容。
不管是2进制,10进制,16进制,n进制,都是逢多少进1的数字规律。那么n进制的时候,就必须有n个符号代表从0~n-1的数值。
比如2进制有2个符号:0、1
比如10进制有10个符号:0、1、2、3、4、5、6、7、8、9
比如16进制有16个符号:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
从下边开始,你看到的10不是十进制的10,你一定要抛开进制的思维,才能看懂!(当然有1个例外:就是说明几进制的时候,是十进制的思维,不然你没法看得懂!比如12进制,是十进制的情况下理解的12,并不是12进制下的12,因为12进制下的12,这个12是12+2=14,即十进制的14)
在n进制的情况下,个位数逢n进1,也就是从0变到10要0+n,
此时10表示已经累加了n,请想想要怎么才能变为20?
没错,又得加一次n,也就是累加2*n才能变成20,继续看:
那从10如何变成100呢?因为是n进制,所以,从“十”位数的0要再往前进1,必须是“十”位数要累加n次。
也就是上边的10变到20,算1次。20变30相当于累加2次。加上00变10,算1次。所以从00变30相当于“十”位累加3次,因为上一段说了,“十”位0要往前进1,必须累加n次。
那你看看从个位数0要往前进1,也是要个位数累加n次。所以,个位数0要向“百”位进1,即0变为100,则是需要个位数累加n*n次才行的!深化解释:因为个位数累加n变为10,而“十”位也是0累计n次才能变为100,即:n倍个n才能让个位数从0变为100,即n*n=100,即“百”位是第3位数,所以从0变为100需要累加(n的3-1次方)。
同理:从0变到“1000”,是4位数,所以从0变到1000需要累加(n的4-1次方)。
同理:从0变到“1000……0”这里假设有88个0,即89位,那么从0变到“1000……0”是需要累加(n的88次方)。如果这里是有m个0,从个位数0变为这个数,个位数必须累加累加(n的m次方)
注意:n是进制。
******************************
从下边开始,讲的都是16进制,(n进制同理,就不再讲n进制了)
所以16进制代入上式,可以得到从0变到10000,是需要个位数累加16的4次方的。这里的16的4次方中的16是需要用十进制的思维去理解的(而不是16进制下的16,因为16进制下的16是16+6=22,即十进制的22等于16进制下的16。所以,这里的16的4次方中的16是实实在在的十进制的16,下同。其他还是16进制思想)。
上边知道10000就是16的4次方。那么20000,则是2*(16的4次方)。如果是80000就是8*(16的4次方),f0000就是f*(16的4次方)
同理:259fa4=200000+50000+9000+f00+a0+4
上式=2*(16的5次方)+5*(16的4次方)+9*(16的3次方)+f*(16的平方)+a*(16的1次方)+4
将上式转10进制=2*(16的5次方)+5*(16的4次方)+9*(16的3次方)+15*(16的平方)+10*(16的1次方)+4
即=2*16*16*16*16*16+5*16*16*16*16+9*16*16*16+15*16*16+10*16+4
这就是16进制转10进制的规律。
*********************
说明:如果你看不懂上边的16进制转10进制的话,你真不太适合C编程。那么就建议你学java了,可能还能找到工作
温馨提示:答案为网友推荐,仅供参考