0xa38f十六进制转换为十进制 求过程 详细点 谢谢

数学中的转换十六转换十进制过程是怎么样的。谢谢... 数学中的转换十六转换十进制过程是怎么样的 。谢谢 展开
 我来答
windblast
2012-11-12 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
1. 不管是16进制,还是10进制说,在内存中都是2进制,所以我们可以直接将之以不同方式显示, 比如%d %x

2. 如果是想将字符格式的十六进制串,手动编写转换过程,以下是示例代码:
#include<stdio.h>
#define N 100
int fun(char *s)
{
int i=0, p=0;
for(i=0;s[i]!='\0'; i++)
{
if (s[i] >='0'&& s[i] <='9')
p = p*16+s[i]-'0';
if (s[i] >='a' && s[i] <='f')
p = p*16+s[i]-'a'+10;
if (s[i] >='A' && s[i] <='F')
p = p*16+s[i]-'A'+10;
}
return p;
}
void main()
{
char s[N];
gets(s);
printf("%d",fun(s));
}

===============================

数学中的转换十六转换十进制过程:

1. 16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。

2.十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

3. 所以,在第N(N从0开始)位上,如果是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

0xa38f 也就是十六进制 A38F,转换成10进制的过程:

= F * 16^0 + 8 * 16^1 + 3 * 16^2 + A * 16^3
= 15*1 + 8*16 + 3*256 + 10*4096
= 15 + 128 + 768 + 40960
= 41871
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式