|
아래는 비트필드 예제로.. char ch의 값을 각 비트별로 분리하는 내용입니다.
참고하세요.. -locke
// bitfields
#include<iostream.h>
#include<stdio.h>
union {
char ch;
struct {
unsigned b1 : 1;
unsigned b2 : 1;
unsigned b3 : 1;
unsigned b4 : 1;
unsigned b5 : 1;
unsigned b6 : 1;
unsigned b7 : 1;
unsigned b8 : 1; // sign bit
} bits;
} u;
void main(void)
{
int i;
cout << "Enter a number(-128 ~ 127):";
cin >> i;
u.ch = i;
printf("[S] [7] [6] [5] [4] [3] [2] [1]\n ");
printf("%d %d %d %d %d %d %d %d\n",
u.bits.b8,
u.bits.b7,
u.bits.b6,
u.bits.b5,
u.bits.b4,
u.bits.b3,
u.bits.b2,
u.bits.b1);
printf("[%x]\n", (unsigned char)u.ch);
} // main
미혜 님이 쓰신 글 :
: 제가 2진수를 16진수로 바꾸어야 하는데요..
: 그니까..
: BinaryArray[]란 곳에 32개의 2진수가 있거든요..
: BinaryArray[0] = 1
: BinaryArray[1] = 0
: BinaryArray[2] = 1
: .
: .
: 이것을 16진수로 변환을 해야 하는데요..
: bit Fields로 이용하면 된다고 하던데요..
: 너무 초보여서 잘 이해가 되질 않네요..
:
: 우선 Bit Fields를 사용한 간단한 예제나..
: 위의 문제는 어떻게 해야 할지 ..
:
: 고수님들 부탁드립니다...
|