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
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.Phép chia nguyên nên viết a/2 thôi.
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