早教吧作业答案频道 -->其他-->
把16进制数对应的字符串转换成整数写函数inthtoi(chars[]),将字符串s,转换为整数,其中s为16进制数对应的字符串,例如“0x2f”,其中0x为16进制的前缀。C语言
题目详情
把16进制数对应的字符串转换成整数
写函数int htoi(char s[]),将字符串s,转换为整数,其中s为16进制数对应的字符串,例如“0x2f”,其中0x为16进制的前缀。C语言
写函数int htoi(char s[]),将字符串s,转换为整数,其中s为16进制数对应的字符串,例如“0x2f”,其中0x为16进制的前缀。C语言
▼优质解答
答案和解析
#include#include#include#define MAX 10
int htoi(char s[]){ //先统计位数,除去0,1“表示0x” int count = -1; for(count = 2;s[count]!='\0';++count); count-=2; int sum=0; int temp=0; //开始计数 for(int i=2;i<=count+1;++i) { switch(s[i]) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':temp = s[i]-48;break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':temp=s[i]-87;break; }
sum+=(pow(16.0,count-(i-2)-1)*temp); } return sum;}void main(){ char string[MAX]; printf("输入一个十六进制字符串:"); gets(string); printf("%s转换结果:%d",string,htoi(string)); system("pause");}
int htoi(char s[]){ //先统计位数,除去0,1“表示0x” int count = -1; for(count = 2;s[count]!='\0';++count); count-=2; int sum=0; int temp=0; //开始计数 for(int i=2;i<=count+1;++i) { switch(s[i]) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':temp = s[i]-48;break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':temp=s[i]-87;break; }
sum+=(pow(16.0,count-(i-2)-1)*temp); } return sum;}void main(){ char string[MAX]; printf("输入一个十六进制字符串:"); gets(string); printf("%s转换结果:%d",string,htoi(string)); system("pause");}
看了把16进制数对应的字符串转换成...的网友还看了以下:
如图1,点o为直线AB上一点,过O点作射线OC使∠BOC=120°.将一直角三角板的直角顶点放在点 2020-05-16 …
如图1,点O为直线AB上一点,过点O作射线OC,使∠BOC=120°.将一直角三角形的直角顶点放在 2020-05-16 …
如图1,点O为直线AB上一点,过点O作射线OC,使∠BOC=120°.将一直角三角板的直角顶点放在 2020-05-16 …
高中曲线方程的一道题..设动点P在直线X=1上,O为原点.以OP为直角边,O为直角顶点做等腰RT三 2020-05-23 …
有位同学发现了“角平分线”的另一种尺规作法,其方法为:1以O为圆心,任意长为半径画弧分别交OM,O 2020-06-06 …
如图1,O为直线AB上一点,过点O作射线OC,∠AOC=30°,将一直角三角板(∠M=30°)的直 2020-06-11 …
已知圆O:x2+y2=1,O为坐标原点,若正方形ABCD的一边AB为圆O的一条弦,则线段OC长度的 2020-06-12 …
(2012•保定一模)如图1,O为圆柱形木块底面的圆心,过底面的一条弦AD,沿母线AB剖开,得剖面 2020-07-12 …
(1)O为平面上一点,过O在这个平面上引2005条不同的直线L1,L2,L3,...,L2005, 2020-07-21 …
已知三棱锥S-ABC的三条侧棱SA、SB、SC两两互相垂直且长度分别为a、b、c,设O为S在底面A 2020-07-30 …