Chuyển số thập phân (cơ số 10) sang nhị phân (cơ số 2, chỉ có 0 và 1).
Cách làm (dùng dịch bit): Duyệt từ bit 31 xuống 0, dịch phải số cần chuyển i bit, AND với 1 để lấy bit tại vị trí đó.
Ví dụ
Input: 42 42 / 2 = 21 dư 0 21 / 2 = 10 dư 1 10 / 2 = 5 dư 0 5 / 2 = 2 dư 1 2 / 2 = 1 dư 0 1 / 2 = 0 dư 1 Đảo ngược: 101010
Thuật toán (Dịch bit)
Bắt đầu
Bước 1: Hàm convert(int num)
Với i từ 31 xuống 0:
k = num >> i
Nếu (k & 1) in '1' else in '0'
Bước 2: main()
num = 42
Gọi convert(num)
Kết thúc
Ví dụ code
#include <iostream>
using namespace std;
void convert(int num) {
for (int i = 31; i >= 0; i--) {
int k = num >> i;
if (k & 1) cout << "1";
else cout << "0";
}
}
int main() {
int num = 42;
convert(num);
return 0;
}
Kết quả
00000000000000000000000000101010