Làm sao để chuyển số thập phân sang số nhị phân trong C++?
0
0
xuans2huy • 510
đã đăng:
Cứ chia số đó cho 2 cho đến khi không còn chia được nữa, tức là bằng 0 thì dừng, ở mỗi lần thực hiện phép chia cho 2, kết quả của phép chia dư cho 2 chính là giá trị nhị phân cần tìm, bởi vì bản chất số thập phân chính là tổng của lũy thừa 2, ví dụ:
$8 = 1 \times 2^3 + 0 \times 2^2 + 0 \times 2^1 + 0 \times 2^0$
$13 = 1 \times 2^3 + 1 \times 2^2 + 0 \times 2^1 + 1 \times 2^0$
Chúng ta cần thu thập các giá trị nhị phân 0 và 1 ở hai ví dụ trên, và cách đơn giản mình nghĩ đó là tạo một mảng int
, sau đó dùng nó để thu thập hai giá trị 0 và 1 của một số thập phân tương ứng.
#include <iostream>
using namespace std;
int main() {
int n;
int A[50];
cout << "Nhap vao 1 so la: ";
cin >> n;
int length = 0;
while (n > 0) {
int binary = n % 2;
A[length] = binary;
n /= 2;
length++;
}
cout << "Gia tri nhi phan tuong ung la: ";
for (int i = length - 1; i >= 0; i--) {
cout << A[i];
}
cout << endl;
}
thêm bình luận...
Bạn chưa đăng nhập, vui lòng đăng nhập để thêm câu trả lời.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)