CI5 2 輸出浮點數的二進位制

2021-06-16 13:11:55 字數 768 閱讀 2158

給定乙個以字串形式表示的小數(例如:3.72),輸出該數的二進位制表示。如果該數不能精確地表示為二進位制形式,輸出「error」。

例子:輸入:3.25

輸出:11.01

思路:將小數分成兩部分:整數部分和小數部分。整數部分很簡單。小數部分想要轉化為二進位制,可以將小數乘以2的結果和1進行比較,如果大於等於1,該位為1並將結果減1;否則為0。如果小數部分的二進位制位數超過某個長度,可以認為無法精確地表示為二進位制形式。

小數部分的例子:

0.25:0.25 * 2 = 0.5,小於1,該位為0;0.5 * 2 = 1.0,等於1,該位為1,減1之後為0。結果:0.01。

#include #include #include using namespace std;

string printbinary(const string& num)

else

if (intpart == 0)

intstr += "0";

while (intpart > 0)

if (decpart == 0)

decstr += "0";

while (decpart > 0)

else

decstr += "0";

} if (index == -1)

return intstr;

else

return intstr + "." + decstr;

}int main()

浮點數的二進位制

1.前幾天,我在讀一本c語言教材,有一道例題 include void main void 在我的編譯器下 編譯是會發生錯誤的。錯誤 cannot convert from int to float win7 vc6.0 sp6 執行結果如下 num的值為 9 pfloat的值為 0.000000 ...

浮點數轉化二進位制

乙個int型別表示的整數值是 2 31 2 31 1 32位二進位制表示 1111111111111111 11111111 11111111 011111111 11111111 11111111 1111111 類似整數聯想到浮點數是怎麼表示的呢?最初正常人可能為這樣想的 但是這樣好像表示的數也...

了解二進位制浮點數運算

所有的浮點數值計算都遵循ieee 754規範。ieee 754規定了四種表示浮點數值的方式 單精確度 32位 雙精確度 64位 延伸單精確度 43位以上,很少使用 與延伸雙精確度 79位元以上,通常以80位元實做 只有32位模式有強制要求,其他都是選擇性的。大部分程式語言都有提供ieee格式與算術,...