[ CnUnix ] in KIDS 글 쓴 이(By): terzeron (microkid) 날 짜 (Date): 2006년 6월 28일 수요일 오후 12시 38분 38초 제 목(Title): Re: [[Q] byte단위 배열에서 bitsize 단위� 이런 매크로를 써보시는 건 어떨지요? #define GET_DEC0(a) (((*((a) + 0) & 0xFF) << 2) | ((*((a) + 1) & 0xC0) >> 6)) #define GET_DEC1(a) (((*((a) + 1) & 0x3F) << 4) | ((*((a) + 2) & 0xF0) >> 4)) #define GET_DEC2(a) (((*((a) + 2) & 0x0F) << 6) | ((*((a) + 3) & 0xFC) >> 2)) #define GET_DEC3(a) (((*((a) + 3) & 0x03) << 8) | ((*((a) + 4) & 0xFF) >> 0)) 5바이트 단위로 증가시켜가면서 char 배열의 포인터를 주면 됩니다. int i; char x[] = { ... }; char *p = x; for (i = 0; i < sizeof (x); i += 5, p += 5) { printf ("0x%08X ", GET_DEC0(p)); printf ("0x%08X ", GET_DEC1(p)); printf ("0x%08X ", GET_DEC2(p)); printf ("0x%08X\n", GET_DEC3(p)); } * 이 코드에는 버그가 존재할 수 있습니다. --- 어떤 성취가, 어떤 조롱이, 또는 어떤 고뇌가 나를 기다리고 있을지 나는 모른다. 나는 아무 것도 모른다. 그러나 나는 아직 과거의 경이로운 기적의 시대가 영원히 과거의 것이 되어 버리지는 않았다는 사실을 굳게 믿고 있다. - Stanislaw Lem - |