Computer >> Máy Tính >  >> Lập trình >> C ++

Chuyển đổi phân số thập phân thành số nhị phân trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về chương trình chuyển đổi phân số thập phân sang số nhị phân.

Đối với điều này, chúng tôi sẽ được cung cấp một phân số thập phân và số nguyên ‘k’. Nhiệm vụ của chúng tôi là chuyển đổi phân số thập phân đã cho thành phân số tương đương nhị phân của nó với các chữ số ‘k’ đã cho của độ chính xác thập phân.

Ví dụ

#include<bits/stdc++.h>
using namespace std;
//converting decimal to binary number
string convert_tobinary(double num, int k_prec) {
   string binary = "";
   //getting the integer part
   int Integral = num;
   //getting the fractional part
   double fractional = num - Integral;
   //converting integer to binary
   while (Integral) {
      int rem = Integral % 2;
      binary.push_back(rem +'0');
      Integral /= 2;
   }
   //reversing the string to get the
   //required binary number
   reverse(binary.begin(),binary.end());
   binary.push_back('.');
   //converting fraction to binary
   while (k_prec--) {
      fractional *= 2;
      int fract_bit = fractional;
      if (fract_bit == 1) {
         fractional -= fract_bit;
         binary.push_back(1 + '0');
      } else
      binary.push_back(0 + '0');
   }
   return binary;
}
int main() {
   double n = 4.47;
   int k = 3;
   cout << convert_tobinary(n, k) << "\n";
   n = 6.986 , k = 5;
   cout << convert_tobinary(n, k);
   return 0;
}

Đầu ra

100.011
110.11111