Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Adagio non molto

정수 선언 후 바이트별로 출력하기 본문

Study/C

정수 선언 후 바이트별로 출력하기

마르카토* 2012. 5. 10. 11:54

C실습시간 코드.

#include <stdio.h>

void binum(int a){
 int i;
 for(i=31;i>=0;i--)
    {
        if(a&(1<<i))
            printf("1");
        else
            printf("0");
  if(i%8==0)
   printf("  ");
    }
 printf("\n");
 return;
}

int main(void)
{
 int a=66311;
 int *pa=&a;
 int i;

 printf("%d의 이진수 출력\n",a);
 binum(a);
 
 i=-1;

 printf("a의 주소 : %d\n",pa);

 while(++i<4)
  printf("%d의 주소의 값 : %d\n",(char*)pa+i,*((char*)pa+i));


 return 0;
}

 

binum이라는 함수는 비트연산자를 이용해서 정수하나를 이진수로 변환하는 기능을 한다.

또한, 바이트별로 띄어쓰기를 해주는 기능이 있어 바이트 단위로 볼 수 있도록 했다.

 

출력값은 7,3,1,0 으로 돌려보면 알겠지만 66311 은 바이트별로 0,1,3,7을 붙여 만든 수이다.

 

출력하는 while문에 4이상의 큰 수를 넣으면 쓰래기 값을 볼 수 있는데... 정말로 무작위 값이 들어있다는 것을 깨달았다고 해야하나... 무튼 끝.

'Study > C' 카테고리의 다른 글

디버깅  (0) 2012.05.31
823년만에 일어나는 달은 거짓  (0) 2011.06.22
Comments