
正文
c语言16转10进制函数 c语言实现16进制转10进制
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言如何实现十六进制转换成十进制
C语言实现十六进制转换成十进制如下:
例如将十六进制数字 9FA8C 转换成十进制:
9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)。
从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。
将各个位的数字乘以位权,然后再相加,就得到了十进制形式。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方。
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
再例如:十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)。
扩展资料:
C语言10进制转16进制
把十进制的数不停除以16的余数按从右到左的顺序排起来就是16进制,例如:55/16=0余5例如100 100/16=6余4 6/16余6,所以就是64,再例如1000 1000/16=62余8 62/16=3余12 3/16余3所以结果是3C8 //。
对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。
参考资料来源:百度百科-十六进制至十进制转换-十六进制---十进制
相关问答
Q1: 如何用C语言将一个16进制数转换成10进制数,要求用函数。
c语言16转10进制函数我自己编写的一个函数。
楼上的根本没达到目的。赋值语句实现纯粹是投机取巧。考试肯定为0分。
下面是程序源代码
#includestdio.h
void
shuchu(int
c)
//这个函数不用编写c语言16转10进制函数,可以直接在zhs函数里面用语句写的//
{
c=c%16;
if(c=0c=9)
{c=c+48;
putchar(c);
}
else
{
c=c+87;
putchar(c);
}
}
void
zhs(int
c)
{
if(c=15)
shuchu(c);
else
{
zhs(c/16);
shuchu(c);
}
}
void
main()
{
int
n;
printf("please
enter
a
number:\n");
scanf("%d",n);
printf("zhuan
huan
hou
de
16jinzhi
shushi
:\n");
zhs(n);
printf("\n");
}
不好意思弄错了这是一个十进制转换到16进制的问题。c语言16转10进制函数我重新帮c语言16转10进制函数你写一个。
Q2: c语言16进制与10进制的转换
这个函数的int HtoD(char *a);就是将16进制的数用字符数组保存,把数组首地址作为参数传递给函数,函数返回转换后的10进制整型数值。
详细说明,我写在备注里了,你看以参考。
#include stdio.h
#include string.h
int HtoD(char *a)//将16进制的数字用字符串保存,并将字符串首地址作为参数传递
{
int num=0,i;
for(i=0; istrlen(a); i++)//迭代 迭代次数为a数组的长度 形参a是指针,初值是指向字符数组的首地址,也就是指向16进制数字的左边第1位
{
//每次迭代 取指针指向的地址值进行判断,同时指针不断往右移动
if(*(a+i)='0'*(a+i)='9')//如果当前位是0~9的数字,那么总数值num累加同时前值*16(因为左边是高位,从高位往低位数,每多1位高位就*16)
num = num*16 + *(a+i)-'0';
else if(*(a+i)='A'*(a+i)='Z')//如果当前位是大写字母A~Z,转换成10进制数值,再累加
num = num*16 + *(a+i)-'A'+10;
else if(*(a+i)='a'*(a+i)='z')//如果当前位是小写字母a~z,转换成10进制数值,再累加
num = num*16 + *(a+i)-'a'+10;
else
return -1;//表示输入错误的数
}
return num;
}
int main()
{
char a[]="1F";
printf("1F=%d",HtoD(a)); //这里我写了简单的调用,打印结果:1F=31
return 0;
}
Q3: 如何用C语言将一个十六进制数字转换为十进制
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:int a = 0XFFFF;printf("%d", a);。
3、编译器运行test.cpp文件,此时成功将十六进制数转换为十进制进行了输出。
Q4: c语言16进制转换为10进制数的函数是什么?
方案一:
#includestdio.h#includemath.h#includestring.hint main(){char s[50];scanf("%s",s);int t=strlen(s);long sum=0;for(int i=0;it;i++){if(s[i]='A' s[i]='Z')s[i]=int(s[i]-'A')+10+'0';sum+=((s[i]-'0')*(pow(16,t-1-i)));}printf("%ld\n",sum);}
方案二:
#includestdio.hint main(){char s[50];scanf("%s",s);int t;long sum=0;for(int i=0;s[i];i++){if(s[i]='9')t=s[i]-'0';elset=s[i]-'A'+10;sum=sum*16+t;}printf("%ld\n",sum);return 0;}
Q5: 如何用C语言实现十六进制转换为十进制.
计算机内部按2进制存放数据c语言16转10进制函数,输入输出才涉及 10进制,16进制等等。
所以,c语言16转10进制函数你按10进制输入,按16进制输出就达到你c语言16转10进制函数的目的c语言16转10进制函数了。
例如:
int x;
printf("input x\n");
scanf("%d",x); // %d 就是按10进制输入
printf("The hex is %x\n", x)c语言16转10进制函数; // %x 就是按16进制输入
// c/c++ 有 itoa 函数,可以把整型转各种进制,存放于字符数组s里,
// 例如 2进制: itoa(x,s,2); 8进制: itoa(x,s,8); 16 进制: itoa(x,s,16);
关于c语言16转10进制函数和c语言实现16进制转10进制的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






