我需要得到一个字符在C中的EBCDIC值。我不知道怎么做。我必须先得到ASCII值,然后再从那里得到EBCDIC值吗?谢谢大家

最佳答案

如果您在使用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];
};

关于c - 在C中获取字符的EBCDIC值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22033636/

10-10 19:20