Adagio non molto
정수 선언 후 바이트별로 출력하기 본문
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