是否有一个返回字符ASCII值的函数? (C ++)

时间:2009-05-10 17:26:04

标签: c++ binary ascii character hex

我需要一个返回字符ASCII值的函数,包括空格,制表符,换行符等......

在类似的说明中,在十六进制,十进制和二进制数之间转换的函数是什么?

5 个答案:

答案 0 :(得分:25)

char c;
int ascii = (int) c;
s2.data[j]=(char)count;

char 一个整数,不需要转换函数。

也许您正在寻找将整数显示为字符串的函数 - 使用十六进制,二进制或十进制表示?

答案 1 :(得分:8)

您不需要函数来获取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"

没有内置函数可以转换为二进制;你必须自己动手。

答案 2 :(得分:3)

如果要在代码中获取字符的ASCII值,只需将字符放在引号

char c = 'a';

答案 3 :(得分:2)

您可能会将内部表示与输出混淆。要查看角色的价值:

char c = 'A';
cout << c << " has code " << int(c) << endl;

类似于十六进制值 - 所有数字都是十六进制数,所以这只是一个输出问题:

int n = 42;
cout << n << " in hex is " << hex << n << endl;

输出语句中的“hex”是C ++操纵器。有十六进制和十进制(dec)的操纵符,但遗憾的是不是二进制文件。

答案 4 :(得分:0)

至于hex&amp;二进制 - 这些只是整数的表示。你可能想要的是像printf(“%d”,n)和printf(“%x”,n) - 第一个打印小数,第二个打印相同数字的十六进制版本。澄清你想要做的事情 -