房天下 > 房天下问答 > 业主生活 > 其他
  • C语言编程小练习

    1.十六进制整数的语法图如图所示。其中,X表示非十六进制数字字符,十六进制数字字符有:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F假设计算机不能直接读入十六进制数,编写程序,从终端读入一个十六进制整数,把它翻译成十进制整数。要求:若十六进制数正确,则输出翻译结果。否则输出错误信息。(提示:编一个函数convert。该函数是一个bool类型函数,如果翻译正确,则返回true;否则翻译错误,返回false。该函数可以应用在需要翻译十六进制整数的任何程序中,例如可以配备主程序调用该函数convert。)请大家帮忙给点思路,怎样读入十六位进制数呀,最好能给出全部解答过程,谢谢啦~

    提问者:孙凯文

    发布于2011-01-18

共1个回答
  • hmtlemon 丨Lv 0
    #include<iostream>#include<string>#include <stdio.h>using namespace std;bool convert(int & out)//out是返回转换后的10进制整数{std::string s;//用字符串模拟16进制数cin >> s;int sum = 0;for(int i = 0; i < s.size(); i++){if((s[i] >= '0' && s[i] <= '9') || (s[i] >= 'A' && s[i] <= 'F')){ if(s[i] >= '0' && s[i] <= '9') { sum = sum*16 + s[i] -48; } if(s[i] == 'A') sum = sum*16 + 10; if(s[i] == 'B') sum = sum*16 + 11; if(s[i] == 'C') sum = sum*16 + 12; if(s[i] == 'D') sum = sum*16 + 13; if(s[i] == 'E') sum = sum*16 + 14; if(s[i] == 'F') sum = sum*16 + 15; } else { return false; }}out = sum;return true;}
    +1 2011-01-18 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。