二進位制小數

2021-07-25 11:26:38 字數 629 閱讀 3138

要理解這道題,首先要知道什麼樣的小數可以轉化為二進位制形式,怎樣的小數不能被轉化為二進位制形式,自己測試幾組資料發現

1.可以轉化為二進位制的小數在有限次的乘二之後,小數部分會變零。舉個例子:

0.625

*2=1.25

1.25

*2=2.5

2.5*2=5.0(5.0的小數部分變成了 0)

2.不能轉化為二進位制的小數在有限詞的乘二之後,小數部分會出現迴圈,因此它永遠也不能轉化為二進位制的小數。

例子自己嘗試。

package 二進位制小數;

/** * created by h on 16-12-18.

*/public

class

solution

stringbuilder sb = new stringbuilder();

int i = 0;

for (; i < 32 && (num != 0); i++) else

}if(i == 32) else

}public

static

void

main(string args)

}

小數 二進位制

首先,給出乙個任意實數,整數部分用普通的二進位制便可以表示,這裡只說小數部分如何表示 例如0.6 文字描述該過程如下 將該數字乘以2,取出整數部分作為二進位制表示的第1位 然後再將小數部分乘以2,將得到的整數部分作為二進位制表示的第2位 以此類推,知道小數部分為0。特殊情況 小數部分出現迴圈,無法停...

二進位制小數

題目描述 有乙個介於0和1之間的實數,型別為double,返回它的二進位制表示。如果該數字無法精確地用32位以內的二進位制表示,返回 error 給定乙個double num,表示0到1的實數,請返回乙個string,代表該數的二進位制表示或者 error 測試樣例 0.625 返回 0.101 c...

十進位制小數轉為二進位制小數

整數和小數分別轉換.整數除以2,商繼續除以2,得到0為止,將餘數逆序排列.22 2 11 餘 0 11 2 5 餘 1 5 2 2 餘 1 2 2 1 餘 0 1 2 0 餘 1 所以22的二進位制是10110 小數乘以2,取整,小數部分繼續乘以2,取整,得到小數部分0為止,將整數順序排列.0.81...