1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 写一个函数 输入一个十六进制数 输出相应的十进制数

写一个函数 输入一个十六进制数 输出相应的十进制数

时间:2024-03-22 10:09:30

相关推荐

写一个函数 输入一个十六进制数 输出相应的十进制数

写一个函数,输入一个十六进制数,输出相应的十进制数(C语言)

题目要求:如标题

思路:

十六进制数为:0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)比如0xFF=1516ˆ1+1516ˆ0=255,0xAB=1016ˆ1+1116ˆ0=171设定length=strlen(str)-1,term为每一项的值。同时设定i,令i=0;i<=length;i++a为相应的十六进制数转为十进制数的乘数,即(0~15)此时需要用到pow函数,则term=a*pow(16,length-i),最后把term叠加即可

以下是具体代码:

#include <stdio.h>#include <string.h>#include <math.h>int main(){void hexadecimal_decimal(char str[]);char string[1000];printf("please enter a hexadecimal number: ");gets(string);hexadecimal_decimal(string);return 0;}void hexadecimal_decimal(char str[]){int length;length=strlen(str)-1;int sum=0;int term;int i;int a;for(i=0;i<=length;i++){if(str[i]>='0' && str[i]<='9')a=str[i]-'0';else if(str[i]>='A' && str[i]<='F')a=10+(str[i]-'A');else if(str[i]>='a' && str[i]<='f')a=10+(str[i]-'a');term=a*pow(16,length-i);sum=sum+term;}printf("The decimal number is: %d\n",sum);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。