此代碼將一個十六進制數字轉換爲十進制值。此代碼爲什麼要將十六進制轉換爲十進制
int value;
// ch is a char variable holding a hexadecimal digit
if (isxdigit(ch))
if (isdigit(ch))
value = ch - '0';
else
value = tolower(ch) - 'a' + 10;
else
fprintf(stderr, "%c is not a valid hex digit", ch);
我不完全理解它是如何工作的。我可以看到不同的東西從char變量中減去,這取決於它是數字還是字母。我可以理解數字轉換的部分,但我不明白當字符是字母時爲什麼必須添加10。