0
C에서 한 문자의 EBCDIC 값을 가져와야합니다. 어떻게해야할지 모르겠다. 먼저 ASCII 값을 가져 와서 EBCDIC 값을 가져와야합니까? 덕분에 사람이C에서 한 문자의 EBCDIC 값 얻기
당신이 문자 인코딩으로 EBCDIC를 사용하는 시스템에있는 경우C에서 한 문자의 EBCDIC 값을 가져와야합니다. 어떻게해야할지 모르겠다. 먼저 ASCII 값을 가져 와서 EBCDIC 값을 가져와야합니까? 덕분에 사람이C에서 한 문자의 EBCDIC 값 얻기
당신이 문자 인코딩으로 EBCDIC를 사용하는 시스템에있는 경우, 당신은 이미 그것을 가지고 사용자 환경이 ASCII 하나이며, 당신은 단순히 EBCDIC 코드 포인트를 원하는
char xyzzy = 'A'; // xyzzy is now 0xc1
경우 단지 같은 두 테이블에서 구축 된 조회 테이블을 사용할 수 있습니다 : 8 비트 ASCII 문자를 사용하여 시스템에 대한
룩업 테이블은 당신에게 EBCDIC 대구를 제공합니다 e 점은 다음과 같을 것입니다 :
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];
};
시스템이 EBCDIC을 사용한다면'char'는 일반적으로/항상 unsigned char입니까? – chux
감사합니다 @ paxdiablo. 조회 테이블을 사용하는 방법을 나에게 설명 할 수 있습니까? 나는 그것이 어떻게 작동하는지 실제로 알지 못한다. – entendezEJ