給定乙個以字串形式表示的小數(例如: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格式與算術,...