#include<stdio.h>
typedef unsigned char BYTE;
struct bit {
BYTE bit1:1;
BYTE bit2:1;
BYTE bit3:1;
BYTE bit4:1;
BYTE bit5:1;
BYTE bit6:1;
BYTE bit7:1;
BYTE bit8:1;
BYTE reservation[3];
};
union bitgroup {
BYTE size[4];
struct bit bts;
};
void binary(BYTE, int);
int main(void) {
union bitgroup bg;
// 가장 낮은 비트가 bit1에 들어가야합니다.
bg.bts.bit1=1;
bg.bts.bit2=0;
bg.bts.bit3=1;
bg.bts.bit4=1;
bg.bts.bit5=0;
bg.bts.bit6=0;
bg.bts.bit7=1;
bg.bts.bit8=0;
int mask=128;
printf("%d\n", bg.size[0]); // 십진수 77
while(bg.size[0]<mask) mask=mask/2;
binary(bg.size[0],mask);
return 0;
}
void binary(BYTE size, int mask) {
if(mask==0) return;
if(size&mask) printf("1 ");
else printf("0 ");
binary(size, mask/2);
}
'c·c++ > c 프로그래밍' 카테고리의 다른 글
동적할당 행렬의 곱셈 (0) | 2012.03.24 |
---|---|
10000팩토리얼 구하기 (0) | 2012.03.23 |
순환호출과 반복문 (0) | 2012.03.22 |
파일을 메모리에 모두 읽어들이자. (0) | 2012.03.22 |
main과 winMain, dllMain의 차이점에 관하여 설명 좀 해주세요 ~~ (0) | 2012.03.22 |