C语言16进制如何才能转换为10进制 不要给我源代码函数我想知道原理。什么计算公式的写明白。

 我来答
券商论
2020-02-04 · TA获得超过4280个赞
知道小有建树答主
回答量:968
采纳率:76%
帮助的人:202万
展开全部
首先抛开你的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了,可能还能找到工作
属于你的我知道
2012-12-10 · TA获得超过188个赞
知道答主
回答量:65
采纳率:0%
帮助的人:18.9万
展开全部
十六进制其实是0和1这两个数字组成的表示方法:如十六进制2A,(ABCDEF十进制为10到15),就是二进制0010 1010,从右到左为低位到高位,2A转化为十进制就是,
10*(16的0次方)+ 2*(16的1次方)= 42,
也可以是按二进制算:0*(2的0次方)+1*(2的1次方)+0*(2的2次方)+1*(2的3次方)+0*(2的4次方)+5*(2的5次方)= 42。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
I_lovetennis
2012-12-08 · 超过19用户采纳过TA的回答
知道答主
回答量:58
采纳率:100%
帮助的人:31.8万
展开全部
如果你要打印10进制,直接printf %d就行,如果你要计算,则例如90的16进制的表示值为0x5A。如何获得其十进制的值呢?只需要对其取模得到的是各位的值,在对其取余获得十位的值即可。然后把十位的值乘以10加上个位的值即可
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清聪_
2012-12-07
知道答主
回答量:12
采纳率:0%
帮助的人:1.8万
展开全部
我有txt版说明你要不?
追问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式