-2
这只是将十进制转换为十六进制的一个非常简单的函数。我只是想将数字(0-9)存储到一个字符串中,然后编写一个简单的函数来检索数字10-16的字母值。 出于某种原因,编译器说,retriveHexChar函数没有在范围内声明(当我在我的decimalToHex函数中使用它时)。我的程序/功能也可能存在其他问题。将十进制转换为十六进制值的函数(在我的程序中出错)
#include <iostream>
#include <string>
using namespace std;
char retrieveHexChar(int num);
void decimalToHex(int number, string s);
int
main()
{
string s;
int num = 235;
decimalToHex(num, s);
}
void
decimalToHex(int number, string s)
{
if (number > 0) {
int temp = number % 16;
s += temp;
number = number/16;
if (temp >= 10)
s += retriveHexChar(temp);
decimalToHex(number, s);
}
for (int i = s.length(); i > 0; i--)
cout << s[i];
}
char
retrieveHexChar(int num)
{
char tempChar;
switch (num) {
case '10':
tempChar = 'A';
break;
case '11':
tempChar = 'B';
break;
case '12':
tempChar = 'C';
break;
case '13':
tempChar = 'D';
break;
case '14':
tempChar = 'E';
break;
case '15':
tempChar = 'F';
break;
}
return tempChar;
}
简单拼写错误;你有一个缺少'e':'retriveHexChar'对'retrieveHexChar' – 0x499602D2 2014-09-30 03:18:33
我看着它,并认为它是嵌套的。我应该缩进编辑,我会注意到;-)谢谢 – 2014-09-30 03:21:29