字符串——int类型转换成char类型

记一种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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值