1、从0到F的字符得到对应的数字,例如字符‘F’,得到数字15。
int GetIntFromChar(char c)
{
int n;
if(c>='0'&&c<='9') // if(c>=0x30&&c<=0x39)
n = c - '0'; // n = c - 0x30;
else if(c>='A'&&c<='F') // else if(c>=0x41&&c<=0x5A)
n = c - 'A' + 10; // n = c - 0x41 + 10;
else if(c>='a'&&c<='f') // else if(c>=0x61&&c<=0x7A)
n = c - 'a' + 10; // n = c - 0x61 + 10;
return n;
}
笨方法:
int GetIntFromChar(char c)
{
if(c == '0')return 0;
else if(c == '1')return 1;
else if(c == '2')return 2;
else if(c == '3')return 3;
else if(c == '4')return 4;
else if(c == '5')return 5;
else if(c == '6')return 6;
else if(c == '7')return 7;
else if(c == '8')return 8;
else if(c == '9')return 9;
else if(c == 'a' || c == 'A')return 10;
else if(c == 'b' || c == 'B')return 11;
else if(c == 'c' || c == 'C')return 12;
else if(c == 'd' || c == 'D')return 13;
else if(c == 'e' || c == 'E')return 14;
else if(c == 'f' || c == 'F')return 15;
}
2、从0到15的数字,例如对应的字符,例如数字15得到字符‘F’。
char GetCharFromInt(int n)
{
char c;
if(n>=0&&n<=9) // if(n>=0&&n<=9)
c = '0' + n; // c = 0x30 + n;
if(n>=10&&n<=15) // if(n>=10&&n<=15)
c = 'A'+ n -10; // c = 0x41 + n -10;
return c;
}
笨方法:
char GetCharFromInt(int n)
{
if(c == 0)return '0';
else if(c == 1)return 1;
else if(c == 2)return 2;
else if(c == 3)return 3;
else if(c == 4)return 4;
else if(c == 5)return 5;
else if(c == 6)return 6;
else if(c == 7)return 7;
else if(c == 8)return 8;
else if(c == 9)return 9;
else if(c == 10)return 'A';
else if(c == 11)return 'B';
else if(c == 12)return 'C';
else if(c == 13)return 'D';
else if(c == 14)return 'E';
else if(c == 15)return 'F';
}
注:
字符’0’到’9’对应的ASCII码是0x30~0x39(十进制为48~57)
26个大写英文字母的ASCII码是0x41~0x5A(十进制为65~90)
26个小写英文字母的ASCII码是0x61~0x7A(十进制为97~122)