我需要在 C 中获取字符的 EBCDIC 值。我不知道如何。我是否必须先获取 ASCII 值然后从那里获取 EBCDIC 值?谢谢任何人
问问题
3544 次
1 回答
3
如果您在使用 EBCDIC 作为字符编码的系统上,则您已经拥有它:
char xyzzy = 'A'; // xyzzy is now 0xc1
如果您的环境是 ASCII 环境并且您只需要 EBCDIC 代码点,则可以使用从这两个表构建的查找表,例如:
使用 8 位 ASCII 字符为您提供 EBCDIC 代码点的系统的查找表类似于:
int ebcdicCodePont (unsigned char asciiVal) {
static int lookup[] = {
/* 0x00-07 */ -1, -1, -1, -1, -1, -1, -1, -1,
/* 0x08-0f */ -1, -1, -1, -1, -1, -1, -1, -1,
:
/* 0x20-27 */ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
:
/* 0x48-4f */ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
:
/* 0x78-7f */ 0xa7, 0xa8, 0xa9, -1, 0x45, -1, -1, 0x07,
};
if (asciiVal > 0x7f)
return -1;
return lookup[asciiVal];
};
于 2014-02-26T06:37:23.683 回答