01/10/2018, 11:47

Chuyển số thập phân sang hệ nhị phân

Mình có viết 1 lệnh để chuyển sang hệ nhị phân. Cách này là cách chia 2 liên tục để lấy phần dư.

#include < iostream >
#include < cmath >
using namespace std;
int main ()
{
cout << “a la so can chuyen sang he nhi phan, nhap : ”;
int a; int sonhiphan = 0; int du = 0; int dem= 0;
cin >> a;
while (a != 0 )
{
du = a % 2;
sonhiphan = sonhiphan + du * pow (10, dem);
dem = dem + 1 ;
a = (a - du) / 2;
}
cout << sonhiphan;
return 0;

}

Nhưng khi chạy thì kết quả lúc đúng lúc sai. VD như 5 chuyển thì bị sai còn 10 thì lại chuyển đúng. Vậy mọi người xem giúp mình đoạn lệnh này sai ở đâu với.
Cảm ơn

rogp10 viết 14:03 ngày 01/10/2018

Chính là do pow. Thực ra viết chuỗi nhị phân vào số là không hay chút nào.

a = (a - du) / 2

Phép chia nguyên nên viết a/2 thôi.

Trình Bá Lân viết 14:01 ngày 01/10/2018

thực ra ban đầu mình định dùng mảng nhưng yêu cầu là không được dùng mảng nên mới thử dùng cách này

Bài liên quan
0