记一种int 类型转换成char类型的方法
int main() {
int b = 9684357;
char dest[200];
int k = 0;
do {
dest[k++] = b % 10 + 0x30;
b /= 10;
} while (b != 0);
dest[k] = '\0'; //字符串必须添加'\0'
cout << dest << endl;
//int n = strlen(dest);
cout << k << endl;
char tempLetter;
//反序回来
for (int i = 0; i < k/2; ++i) {
tempLetter = dest[i];
dest[i] = dest[k - i - 1];
dest[k - i - 1] = tempLetter;
}
cout << dest << endl;
return 0;
}
输出
7534869
7
9684357
为什么int + 0x30(‘0’)就可以转换成char字符了呢?
在ascii码表中的他是分为 二进制、十进制、十六进制和图形这4类,算是字符,我们看到他的'0'对应的十六进制为0x30,而数字0的十六进制是0x00,所以
0x30 + 0x00 = 0x30, 图形 ‘0’
0x30 + 0x01 = 0x31,图形 '1'
........
这就把整数转换成字符了
而在字符转换成整数时 减去0x30
如‘0’ -> 0
0x30 - 0x30 = 0x00 十进制 0
‘1’ -> 1
0x31 - 0x 30 = 0x01 十进制 1