1.单个数字的转换
我们可以发现,数字0对应的ASCII码是48,其余的数字依次加1。所以对应单个数字转成int或者float,直接减去48,即可。
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
char ch[3] = {'1','2','3'};
//转换char->float
float f = ((float)ch[1]-48);
cout << f << endl; //输出2
//转换char->int
int f1 = (ch[2]-48);
cout << f1 << endl;//输出3
return 0;
}
2.非单个数字的转换
因为char类型只能接收单个字符,所以即使将大于9 的整数赋给char变量,此时存储的是,这个整数在ASCII码表中对应的符号。例如:
#include <stdio.h>
#include <iostream>
using namespace std;
int main ()
{
//test char -> int
for(int i = 9;i < 15;i++)
{
char a = i;
cout <<a<<endl;
}
return 0;
}
运行的结果是:
ps:
如果你给char 类型变量赋值一个 小数,比如说 9.5,这时 编译器会自动截取整数部分。
例如:
#include <stdio.h>
#include <iostream>
using namespace std;
int main ()
{
//test char -> int
for(int i = 9.5;i < 15;i++)
{
char a = i;
cout <<a<<endl;
}
return 0;
}
结果为: