用C语言将16进制数转化为10进制数 16进制数以字符串形式输入 最好运用数组 谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言将16进制数转化为10进制数 16进制数以字符串形式输入 最好运用数组 谢谢相关的知识,希望对你有一定的参考价值。
用itoa函数(需要stdlib.h头文件),假如要把a存进字符数组str[]中,则这样操作itoa(a, str, 16)。第三个参数是进制数。如果你要用代码实现,那我就写个函数给你吧:
#include <stdio.h>
const char HexNum[] = "0123456789ABCDEF";
void subDecToHex(int dec, char *&str) if(!dec) return; subDecToHex(dec/16, str); *str = HexNum[dec%16]; ++str;
void decToHex(int dec, char *str) subDecToHex(dec, str); *str = 0;
int main() int a; char str[100]; while(scanf("%d", &a) != EOF) decToHex(a, str); printf("(%d)10 == (%s)16\n", a, str); return 0; 参考技术A /*将16位字符串转化为十进制,开头带0x*/
void main(int argc, char *argv[])
char ch[10] = '\\0';
int i, j, count = 0;
long sum = 0, f = 0;
printf("Please enter a hexString with 0x at the beginning:\
");
scanf("%s", ch);
if (ch[0] != '0' || (ch[1] != 'x' && ch[1] != 'X'))
printf("input error!\
please begin with the 0x");
exit(0);
while (ch[count] != '\\0')
if (ch[count] > 96 && ch[count] < 123)
ch[count] -= 32;
count++;
for (i = 2; i < count; i++)
f = 1;
for (j = 2; j < i; j++)
f *= 16;
sum += convert(ch[i]) * f;
printf("the result is:%ld\
", sum);
int convert(char ch)
int t = 0;
switch (ch)
case '1':t = 1;break;
case '2':t = 2;break;
case '3':t = 3;break;
case '4':t = 4;break;
case '5':t = 5;break;
case '6':t = 6;break;
case '7':t = 7;break;
case '8':t = 8;break;
case '9':t = 9;break;
case 'A':t = 10;break;
case 'B':t = 11;break;
case 'C':t = 12;break;
case 'D':t = 13;break;
case 'E':t = 14;break;
case 'F':t = 15;break;
default:printf("input error");exit(0);
return t;
ZZNUOJ_用C语言编写程序实现1144:多种进制(附完整源码)
题目描述
输入一个十进制整数n,转换成2、3、7、8进制输出
要求程序定义一个dToK()函数,功能是将十进制数转化为k进制整数,其余功能在main()函数中实现。
void dToK(int n, int k, char str[]) //将n转化为k进制数,存入str
输入
输入一个int范围内的正整数n
输出
输出为4行,分
以上是关于用C语言将16进制数转化为10进制数 16进制数以字符串形式输入 最好运用数组 谢谢的主要内容,如果未能解决你的问题,请参考以下文章