숫자 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;
}