在 C++ 中將小數轉成二進位制數


在本教程中,我們將討論將小數轉成二進位制數的程式。

為此,我們將提供小數和小數 ‘k’。我們的任務是將給定小數轉成其二進位制等價數,直至給定小數精度 ‘k’ 位。

示例

 實際演示

#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;
}

輸出

100.011
110.11111

更新於: 16-01-2020

489 次瀏覽

啟動您的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.