#include<stdio.h> int main(void) { int num=6, n[10], i=0; do { n[i]=num%2; num=num/2; i++; }while(num); for(i=i-1; i>=0; i--) printf("%d", n[i]); printf("\n"); return 0; } | cs |
수기로 구하는 방식대로 짠 것
do while으로 한 이유는 ? input이 0 일때도 제대로 되게 하려고 그런 것 같음
#include<stdio.h> int main(void) { int num=6, i=0, chk=0; for( i=sizeof(int)*8-1; i>=0; i-- ) { if( ( ((num>>i) & 1) && !chk) || i==0 ) chk=1; if(chk) printf("%d", (num>>i) & 1); } printf("\n"); return 0; } | cs |
비트연산자로 한 것
32비트 다 찍어줌.. 앞에 무의미한 0 출력되지 않도록 chk 변수를 넣어봤음
댓글0