Giới thiệu
Một số thập phân cũng có thể được chuyển đổi thành dạng nhị phân. Để chuyển đổi số thập phân sang nhị phân, ta chia số đó cho 2 cho đến khi kết quả là 0 hoặc 1. Ở mỗi bước, các phần dư được lưu riêng để tạo thành số nhị phân theo thứ tự ngược lại.
Trong thuật toán này, ta sẽ sử dụng phương pháp đệ quy. Điều này giúp giải quyết bài toán mà không cần cấu trúc dữ liệu stack. Trong triển khai, ta biết rằng đệ quy của một hàm sẽ tuân theo stack nội bộ. Ta sẽ sử dụng stack đó để phục vụ công việc.
Đầu vào và Đầu ra
Đầu vào: Số thập phân 56 Đầu ra: Giá trị nhị phân: 111000
Thuật toán
decToBin(decimal)
Đầu vào: Số thập phân.
Đầu ra: Chuỗi nhị phân tương đương.
Begin
if decimal = 0 OR 1, then
chèn decimal vào chuỗi nhị phân
return
decToBin(decimal / 2)
chèn (decimal mod 2) vào chuỗi nhị phân.
End
Ví dụ (C++)
#include <iostream>
using namespace std;
void decToBin(int dec) {
if(dec == 1 || dec == 0) {
cout << dec; // in 0 hoặc 1 là dec
return;
}
decToBin(dec/2); // chia số cho 2 và tìm thập phân lại
cout << dec % 2; // sau khi trả về in giá trị theo thứ tự ngược
}
main() {
int dec;
cout << "Enter decimal number: "; cin >> dec;
cout << "Binary Equivalent: "; decToBin(dec);
}
Kết quả
Enter decimal number: 56 Binary Equivalent: 111000