Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[233] union을 써 보세요.
김백일 [cedar] 3189 읽음    2002-01-21 16:09
산적 님이 쓰신 글 :
: 질문내용은...
:
: int형 값이 100이라고 하면은...
:
: 100이란 값을 char 형으로 형변환해서 넣어야 되는데엽...
:
: 100이 형변화하면 char형 3자리를 차지 하잖아요....
:
: 그런데... 문제는 2자리 밖에 없다는 거에요....
:
: 거기다 이 3자리 값을 담을 려고 하는데.....
:
: 그 방법을 질문 드리는 겁니다.
:
: 왜냐하면 2자리는 전문(구조체)형태로 고정되어 있기 땜에.... 질문을 드립니다.
:
: - 산적 -
:

char 2자리는 8 * 2 = 16 비트이므로
short int와 동일한 크기입니다.
그러므로 0 ~ 65535 까지 표현할 수 있습니다.

다음 소스를 참고하세요.

int main(int argc, char* argv[])
{
  union myunion {
    unsigned short i;
    unsigned char c[2];
  } mu;

  mu.i = 1000;   
   
  printf("%u = %u * 256 + %u\n", mu.i, mu.c[1], mu.c[0]); // 순서에 주의!    (PC는 little-endian machine)
   
  return 0;
}

결과는 다음과 같이 나옵니다.
1000 = 3 * 256 + 232

+ -

관련 글 리스트
229 [급질문] 숫자 값이 100이상인데..... 넣어야 될값은 문자형 두자리에 넣어야 되여.. 산적 3505 2002/01/21
230     Re:좀더 질문의 의도를 밝혀주세요..(냉무) 남병철.레조 3006 2002/01/21
232         다시 질문... 산적 2200 2002/01/21
233             union을 써 보세요. 김백일 3189 2002/01/21
234                 Re:union을 써 보세요. 산적 2049 2002/01/21
238                     Re:Re:union을 써 보세요. 김백일 3215 2002/01/22
239                         김백일님 많은 도움이 됐습니다. 진심으로 감사드립니다. 꾸벅... 산적 3097 2002/01/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.