我需要一个函数,能返回包括空格、制表符、换行符等字符在内的ASCII值。
同样地,请问哪个函数可以在十六进制、十进制和二进制之间进行转换?
char c;
int ascii = (int) c;
s2.data[j]=(char)count;
一个 char 就是 一个整数,不需要进行转换操作。
也许你正在寻找将整数以十六进制、二进制或者十进制的形式显示出来的函数?
您不需要使用函数来获取ASCII值,只需通过(隐式)转换将其转换为整数即可:
int x = 'A'; // x = 65
int y = '\t'; // x = 9
要将一个数字转换为十六进制或十进制,您可以使用printf
家族的任何成员:
char buffer[32]; // make sure this is big enough!
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345"
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039"
没有内置的函数可以将其转换为二进制;您需要自己编写代码。
如果您想在代码中获取字符的ASCII值,请将该字符放入引号中。
char c = 'a';
您可能将内部表示与输出混淆了。要查看字符的值:
char c = 'A';
cout << c << " has code " << int(c) << endl;
int n = 42;
cout << n << " in hex is " << hex << n << endl;
就十六进制和二进制而言,它们只是整数的表示形式。你可能想要的是类似printf("%d",n)和printf("%x",n)这样的东西——第一个打印十进制,第二个打印相同数字的十六进制版本。请澄清你想要做什么。