C 将ASCII INT转换为char

C++ Convert Ascii Int To Char To Int

本文关键字:char 转换 INT ASCII      更新时间:2023-10-16

我能够在没有问题的情况下转换大多数内容,如果需要的话,可以进行Google搜索。我无法弄清楚这个。

我有一个char阵列:

char map[40] = {0,0,0,0,0,1,1,0,0,0,1,0,1... etc

我试图将char转换为正确的整数,但是无论我尝试什么,我都会得到ASCII值:48/49。

我尝试了很多不同的转换和演员组合,但是我也不能以0或1的速度结合,即使是char。

有人可以帮我吗?谢谢。

代表整数的字符的ASCII范围为48至57(对于'0'至9')。您应该从字符中减去基本值48,以获取其整数值。

char map[40] = {'0','0','0','0','0','1','1','0','0','0','1','0','1'...};
int integerMap[40];
for ( int i = 0 ;i < 40; i++)
{
   integerMap[i] = map[i] - 48 ;
   // OR
   //integerMap[i] = map[i] - '0';

}

如果char是字面的,例如'0'(请注意引号),要转换为INT您必须执行的操作:

int i = map[0] - '0';

当然,在您的map数组上进行了类似的操作。这也将对错误检查,因此您知道由此产生的INT在0-9范围内。

您获得48/49的原因是因为,正如您指出的那样,像int i = (int)map[0];这样的文字的直接转换给出了字符的ASCII值。