c++:进制转换 十六进制转换为十进制
编程题16:进制转换成绩:100/折扣:0.9编写程序,以字符形式输入一个四位十六进制数(不考虑符号位,即不输入负数),将其变换为一个十进制整数后输出。转换的过程用函数实...
编程题16:进制转换
成绩: 100 / 折扣: 0.9
编写程序,以字符形式输入一个四位十六进制数(不考虑符号位,即不输入负数),将其变换为一个十进制整数后输出。转换的过程用函数实现,函数原型: int change(char *s); 即传入十六进制数串,得到对应地十进制数值返回。
提示:
1. 以字符串方式存储一个四位十六进制数,其中的每一个字符都必须是十六进制数中合法的字符(0~9,a~f或A~F),所以主函数中应当定义一个字符数组长度为5.
2. 字符转为整数的方法:数字字符-48得到对应的数字值,例如:’6’-48得到整数6;字母字符转为对应位数值的方法,大写字母直接减55,小写字母直接减87,例如:’B’-55得到整数11,’b’-87得到整数11。
3. 对读入的字符串要判断,如果出现非十六进制的符号,则不调用转换函数求解, 直接用语句: cout << "Original data error\n"; 给出提示结束程序;否则调用求解,复制输出语句:cout << "The dec data is:"<<…<<endl; (省略号处请以你的转换函数调用来代替)
4. 十六进制度转换为十进制的方法:每一位上的值乘以位权最后相加,例如:2BE的等效十进制数为:2*16*16+11*16+14=702. 十六进制的A~F对应的值为10~15
5.程序中若需要用到其他函数,自行定义并调用
编译正确为何程序无法运行,我觉得思路应该没问题吧,求大神指导 展开
成绩: 100 / 折扣: 0.9
编写程序,以字符形式输入一个四位十六进制数(不考虑符号位,即不输入负数),将其变换为一个十进制整数后输出。转换的过程用函数实现,函数原型: int change(char *s); 即传入十六进制数串,得到对应地十进制数值返回。
提示:
1. 以字符串方式存储一个四位十六进制数,其中的每一个字符都必须是十六进制数中合法的字符(0~9,a~f或A~F),所以主函数中应当定义一个字符数组长度为5.
2. 字符转为整数的方法:数字字符-48得到对应的数字值,例如:’6’-48得到整数6;字母字符转为对应位数值的方法,大写字母直接减55,小写字母直接减87,例如:’B’-55得到整数11,’b’-87得到整数11。
3. 对读入的字符串要判断,如果出现非十六进制的符号,则不调用转换函数求解, 直接用语句: cout << "Original data error\n"; 给出提示结束程序;否则调用求解,复制输出语句:cout << "The dec data is:"<<…<<endl; (省略号处请以你的转换函数调用来代替)
4. 十六进制度转换为十进制的方法:每一位上的值乘以位权最后相加,例如:2BE的等效十进制数为:2*16*16+11*16+14=702. 十六进制的A~F对应的值为10~15
5.程序中若需要用到其他函数,自行定义并调用
编译正确为何程序无法运行,我觉得思路应该没问题吧,求大神指导 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询