시뮬레이션 - Notation

CodeKong의 기술 블로그·2023년 7월 4일
1

코딩테스트 스킬

목록 보기
2/5

숫자 29를 2진법으로 표현하면 어떻게 될까요?

결과적으로는 가장 끝에 적혀있는 몫에서 부터 시작하여 지금까지 나왔던 나머지들을 거꾸로 순서대로 적어주면, 2진법이 완성됩니다.

#include <iostream>
using namespace std;

int main() {
    int n = 29;
    int digits[20] = {};
    int cnt = 0;
    
    while (true) {
        if(n < 2) {
            digits[cnt++] = n;
            break;
        }
    
        digits[cnt++] = n % 2;
        n /= 2;
    }
    
    // print binary number
    for(int i = cnt - 1; i >= 0; i--)
        cout << digits[i];
}

이진수 11101을 10진법으로 표현하면 어떻게 될까요?

#include <iostream>
using namespace std;

int main() {
    int binary[5] = {1, 1, 1, 0, 1};
    int num = 0;
    
    for(int i = 0; i < 5; i++)
        num = num * 2 + binary[i];
    
    cout << num;
}

0개의 댓글