typedef struct_name{ .... unsigned char var:4; .... }
위처럼 unsigned char var:4라고 선언하면 뒤에 붙는 :4는 어떤 역할을 하나요? 위 코드를 봤는데 어떻게 되는질 모르겠네요. 변수이름이 var:4는 아닌거 같고..
그리고 이런식으로 선언하는 방식을 부르는 용어가 따로 있나요?
https://en.cppreference.com/w/c/language/bit_field
4 비트 사용방법
http://codepad.org/2YUXao0n
계산기 프로그래머 HEX 16진수 - hexadecimal DEC 10진수 - decimal OCT 8진수 - octal BIN 2진수 - binaryhttps://cafe.naver.com/assemcafe/357https://kajukaju.blog.me/120164569028https://blog.naver.com/sgkyaku/50000154348
typedef struct { unsigned char var:4; }bit; int main() { int i; int m; bit b; //HEX 16진수 값 - 출력 해봄 b.var = 0xFF; printf("%08x\n", b.var); printf("\n"); //HEX 16진수 값 - 하나씩 출력 for(m=0; m<16; m++) { b.var = m; printf("%x\n", (b.var)); } printf("\n"); printf("왼쪽부터. 1비트씩 출력\n"); for(m=0; m<16; m++) { b.var = m; printf("%02d : ", m); for(i=0; i<4; i++) { printf("%x", (b.var >> i) & 0x01); } printf("\n"); } printf("\n"); //오른쪽부터. 1비트씩 출력 //하지만. 결과 값이 이상하게 출력 됨. printf("잘못된 - 출력 값\n"); for(m=0; m<16; m++) { b.var = m; printf("%02d : ", m); for(i=4; i>0; i--) { printf("%x", (b.var >> i) & 0x01); } printf("\n"); } printf("\n"); printf("오른쪽부터. 1비트씩 출력\n"); for(m=0; m<16; m++) { b.var = m; printf("%02d : ", m); char buf[4]; for(i=0; i<4; i++) { if( ((b.var >> i) & 0x01) == 0 ) { buf[3-i] = '0'; } else { buf[3-i] = '1'; } } printf("%s", buf); printf("\n"); } return 0; } 0000000f 0 1 2 3 4 5 6 7 8 9 a b c d e f 왼쪽부터. 1비트씩 출력 00 : 0000 01 : 1000 02 : 0100 03 : 1100 04 : 0010 05 : 1010 06 : 0110 07 : 1110 08 : 0001 09 : 1001 10 : 0101 11 : 1101 12 : 0011 13 : 1011 14 : 0111 15 : 1111 잘못된 - 출력 값 00 : 0000 01 : 0000 02 : 0001 03 : 0001 04 : 0010 05 : 0010 06 : 0011 07 : 0011 08 : 0100 09 : 0100 10 : 0101 11 : 0101 12 : 0110 13 : 0110 14 : 0111 15 : 0111 오른쪽부터. 1비트씩 출력 00 : 0000 01 : 0001 02 : 0010 03 : 0011 04 : 0100 05 : 0101 06 : 0110 07 : 0111 08 : 1000 09 : 1001 10 : 1010 11 : 1011 12 : 1100 13 : 1101 14 : 1110 15 : 1111
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
텍스트 포맷에 대한 자세한 정보
<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]
https://en.cppreference.com/w
https://en.cppreference.com/w/c/language/bit_field
참고해보세요.
4 비트 사용방법
http://codepad.org/2YUXao0n
계산기 프로그래머
HEX 16진수 - hexadecimal
DEC 10진수 - decimal
OCT 8진수 - octal
BIN 2진수 - binary
https://cafe.naver.com/assemcafe/357
https://kajukaju.blog.me/120164569028
https://blog.naver.com/sgkyaku/50000154348
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기