캐릭터 한글자가 8비트로 표현될때 4비트씩 잘라서 구조체에 담고 싶은경우 어떻게 담아야 합니까...?
너무 초보적인건지 몰라도 이런게 있는지 부터 궁금합니다.
내 마음대로 몇비트를 데이터 타입으로 정의할수 있나요...?
자료멤버형: 비트폭; 형식으로 구조체를 지정하세요. 예) #define UPPER 0x0F #define LOWER 0xF0 struct Test{ unsigned char upper: 4; unsigned char lower: 4; }; struct Test data;
data.upper = char&UPPER; data.lower = char&LOWER;
몇가지 사소한 수정을 하겠습니다.
자료멤버형: 비트폭; 형식으로 구조체를 지정하세요. 예) //#define UPPER 0x0F #define UPPER 0xf0 //#define LOWER 0xF0 #define LOWER 0x0f struct Test{ unsigned char upper: 4; unsigned char lower: 4; }; struct Test data; //data.upper = char&UPPER; data.upper = (char&UPPER) >> 4; data.lower = char&LOWER;
예)
//#define UPPER 0x0F #define UPPER 0xf0 //#define LOWER 0xF0 #define LOWER 0x0f struct Test{ unsigned char upper: 4; unsigned char lower: 4; }; struct Test data; //data.upper = char&UPPER; data.upper = (char&UPPER) >> 4; data.lower = char&LOWER;
@ 또는 위와같이 struct를 만드시고 struct Test* data = (struct Test*) & char; 와 같이 하셔도 될겁니다. endian 때문에 재사용성이 매우 떨어지는 코드이긴 합니다만...
감사드립니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re:비트필드지정
자료멤버형: 비트폭; 형식으로 구조체를 지정하세요.
예)
#define UPPER 0x0F
#define LOWER 0xF0
struct Test{
unsigned char upper: 4;
unsigned char lower: 4;
};
struct Test data;
data.upper = char&UPPER;
data.lower = char&LOWER;
Re:비트필드지정
몇가지 사소한 수정을 하겠습니다.
@ 또는 위와같이 struct를 만드시고
struct Test* data = (struct Test*) & char;
와 같이 하셔도 될겁니다.
endian 때문에 재사용성이 매우 떨어지는 코드이긴 합니다만...
답변감사드립니다..
감사드립니다.
댓글 달기