我寫的十進制轉換爲十進制數不起作用。我不確定哪部分是錯的。我必須做-7或其他什麼。十進制到十六進制轉換錯誤
int hex_to_dec(char hexnumber[])
{
int decimal = 0; //integer for the final decimal number
int bit; //integer representing numbers between 0-9 and letter a-f in hex number
//a char array containing the input hex number
int i=0,j=0;
//the integer i takes the length of the input array
i =strlen(hexnumber);
//while there is a next bit in the array
while(i!=0)
{
bit = hexnumber[j];
//if the bit is a digit do the following
if(('0' <= bit && bit <= '9'))
{
decimal = decimal * 16;
decimal = decimal + (bit - '0');
}
//if the bit is a letter do the following
if(('a' <= bit && bit <= 'z'))
{
decimal = decimal * 16;
decimal = decimal + (bit - '7');
}
i--;
j++;
}
if(('a' <= bit && bit <= 'z'))
{
decimal = decimal * 16;
decimal = decimal + (bit - '7');
}
cout<<decimal;
return decimal;
}
以上是我的代碼相同。
使用調試器。編寫測試。 –
使用標準函數,如'isdigit'和'isalpha',而不是滾動自己的。 – chris
*值減去「0」之後的「值 - 7」技巧適用於「A..F」* - 至少使用ASCII。這表明你從其他地方複製了部分代碼 - 只是不正確。 – usr2564301