[질문]10진수를 비트단위로 잘라서 10진수로 바꿀려고 합니다.
글쓴이: redpig / 작성시간: 목, 2010/04/08 - 10:32오전
질문이 좀 이상한데요..
제가 하고자 하는게..
int i=1024;
int a, b, c, d, e;
이때 i값 1024를 2진수로 변환하면 10000000000 인데요.
이걸 3자리, 3자리, 2자리, 2자리, 2자리씩 잘라서 각각 a, b, c, d, e변수에 넣을려고 합니다.
그럼 a=010, b=000, c=00, d=00, e=00
이렇게 되는데요.
이걸 도데체 어떻게 해야하는지 모르겠네요.
도움 부탁드립니다.
Forums:
일단..
int변수에 010, 000 을 넣는게 무슨 의미가 있는지 모르겠네요. 뭐 어쨋든 필요하시다면...
한변수에 3 bit씩 넣겠단 뜻이겠지요?
int value = 1024;
while(value <=0)
{
int bit = value % 2; //이렇게 구하면 2진수 비트가 역순으로 구해짐.
//저 비트를 어떤식으로든 다루면 됨. 근데 3,3,2,2,2 비트씩 int형 변수에 넣는다는게 이해가 잘...
value /=2;
}
bitfield 와 union 을
bitfield 와 union 을 사용하면 될듯싶은데요?
------------------------------------------------
가끔은 하늘을 보고 살자...
------------------------------------------------
가끔은 하늘을 보고 살자...
int i=1024; int a, b, c, d,
int i=1024;
int a, b, c, d, e;
e = i && 0x00000003;
d = (i >> 2) && 0x0000003;
c = (i >> 4) && 0x0000003;
b = (i >> 7) && 0x0000007;
a = (i >> 10) && 0x0000007;
마스크랑 비트시프트가 있지요...
.... 이예기가 아닌가 ;;
댓글 달기