void tobi(int su) { int i, bit = 0x8000; for(i = 0; i < 16; i++) { if(((i % 4) == 0) && (i != 0))cout << " "; if((su & bit))cout << "1"; else cout << "0"; su = su << 1; } cout << endl; } void main() { int su; cout << "숫자를 입력해 주세요 : "; cin >> su; tobi(su); }
프로그램 실행화면
정수를 입력받아서 2진수로 출력해 주는 프로그램이다. 원래 int는 4바이트다. 근대 프로그램은 2바이트로 생각하고 프로그래밍을 했다.
이 프로그램을 보고 이해를 했다면 충분히 4바이트 정수를 2진수로 바꾸는 프로그램으로 수정할 수 있을 것이다. tobi()함수에서 for문의 조건식과 bit의 초기값만 변경해주면 된다.
원래 4바이트이기 때문에 음수를 입력했을 때 정확하게 나오지 않는 범위가 있을 것이다. 일딴 위의 프로그램은 양수전용이라 해두면 좋을 것 같다.
for문에서 어떤식으로 되어있냐면 su의 가장 최상위 bit를 검사해서 1이면 1을 출력하고 0이면 0을 출력한다. 그리고 << 1 즉 왼쪽으로 1칸식 shift 시킨다. 그리고 또 최상위 bit를 검사해서 출력해준다. 이를 16번 반복하면 전부 출력된다.