為什麼試將十進位制小數0 79轉化為二進位制小數,要求轉化後

2021-03-28 05:56:32 字數 6064 閱讀 6142

1樓:匿名使用者

0.1%=1/1000>1/1024=1/2^10,當為2^(-10)時,誤差略小於0.1%

將十進位制數0.39轉換成二進位制數,要求精度達到0.1%,怎麼確定精度

2樓:仁昌居士

十進位制數0.39轉換成二進位制數,要求精度達到0.1%,精度為0.001,即二進位制數0.011。

十進位制小數轉換成二進位制小數採用"乘2取整,順序排列"法。用2乘十進位制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。

然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。

十進位制數0.39轉換成二進位制數,要求精度達到0.1%,即保留有效位數為0.

001。0.39*2=0.

78,整數部分為0,小數部分為0.78。再0.

78*2=1.56,整數部分為1,小數部分為0.56。

再0.56*2=1.12,整數部分為1,小數部分為0.

12。即十進位制數0.39=二進位制數0.

011。

3樓:

一個十進位制精確到0.1%,等於二進位制數精確到小數點後10位十進位制小數轉化為二進位制小數時,會出現無法用有限位小數表示的情況,這時就要根據精度要求,確定保留幾位小數。1位小數:

1100.1, 等於十進位制數12.5,誤差 -0.

13位小數:1100.101, 等於十進位制數12.

625,誤差 +0.0254位小數:1100.

1001, 等於十進位制數12.5625,誤差 -0.03755位小數:

1100.10011, 等於十進位制數12.59375,誤差 -0.

00625由此可見,轉化出來的二進位制小數的位數越多,誤差越小,精確度越高,但小數位數過長也很麻煩,這時就要根據需要進行取捨。十進位制小數轉換成二進位制小數採用"乘2取整,順序排列"法。具體做法是:

用2乘十進位制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數 部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。

十進位制小數轉二進位制要求精度為0.1%是什麼意思,為什麼需要精確到二進位制小數10位??? 5

4樓:匿名使用者

精度0.1%即1‰(千分之一),小數點之後10位二進位制可以表示2e-10=1/1024(2的-10次方),精度略高於1‰,所以要求二進位制精度達到0.1%,小數點後二進位制位數要達到10位。

5樓:中華糊塗王

因為千分之一就是1除1000,2的10次方是1024,所以裡就這樣

為什麼十進位制數轉換成二進位制小數,要求轉換後精度

6樓:聽不清啊

因為絕大多數的十進位制小數,轉換為二進位制後都是是無限迴圈小數。而計算機中只能以有限位儲存資料。

將十進位制轉化為二進位制中,什麼是滿足精度要求

7樓:匿名使用者

十進位制小數轉化為二進位制小數時,會出現無法用有限位小數表示的情況,這

時就要根據精度要求,確定保留幾位小數。

如:十進位制數 12.6 轉化為二進位制數:

1位小數:1100.1, 等於十進位制數12.5,誤差 -0.1

3位小數:1100.101, 等於十進位制數12.625,誤差 +0.025

4位小數:1100.1001, 等於十進位制數12.5625,誤差 -0.0375

5位小數:1100.10011, 等於十進位制數12.59375,誤差 -0.00625

……由此可見,轉化出來的二進位制小數的位數越多,誤差越小,精確度越高,但小數位數過長也很麻煩,這時就要根據需要進行取捨。

十進位制小數怎麼轉化成二進位制什麼時候停止,急求啊。!!請會的人詳細說說。

8樓:仁昌居士

十進位制小數

轉換成二進位制小數採用"乘2取整,順序排列"法。具體做法是:用內2乘十進位制小數,可以得到積,容將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。

然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。

9樓:畫皮炫亮

什麼時候乘復2正好唯一,就停止。制

(**bai**於網路,侵du刪)

比如當上一位餘的zhi小數位為0.5,下面dao再乘就正好為1,此時所餘的小數部分已經全部轉化為0(1.0的0),就不必再乘了。b(-1)=0, b(-2)=1, b(-3)=1

所以(0.375)d=(0.011)b。(整數部分轉化除法倒序排列,小數部分乘法順序排列)

當然也不是每個十進位制的小數都可以轉化為有限的二進位制小數,比如十進位制小數0.64就無法用有限的二進位制數表示,計算下去會發現所餘的小數部分一直不會是0.5。

也就無法用有限的二進位制小數表示,這時候機器就會按記憶體大小而保留相應的位數。

10樓:嘻哈

將小數部分乘以2,取結果的整數部分為二進位制的一位。 然後繼續取結果的小數部分專乘2重複,一屬直到小數部分全部為0結束 (有可能遇到不停迴圈乘不盡的情況出現)

舉例:0.8125換成二進位制方法如下:

0.8125x2 = 1.625...1

0.625x2 = 1.25....1

0.25x2 = 0.5.....0

0.5x2 = 1 .....1

至此小數部分已經全為0 (1.0000..) ,所以十進位制0.8125對應二進位制的 0.1101

而乘不盡的無限迴圈二進位制小數舉個例子如十進位制的0.68, 你可以嘗試按上面的方法乘一下 :)

另外十進位制的整是用除2的方式的,想必你已經知道了。在換算時需要將整數部分用除2方式計算出,小數部分用乘2方式計算出,然後再用小數點接到一起作為二進位制的結果

11樓:

看你機器的定址的最大範圍了,有可以存32的機器,也有存64位的機器

十進位制小數0.8125轉換二進位制 要求過程

12樓:心亡殘夢

小數部分

0.8125×2=1.625,取1

0.625×2=1.25,取1

0.25×2=0.5,取0

0.5×2=1,取1

十進位制:0.8125=二進位制:0.1101

擴充套件資料:

1. 十進位制整數轉換為二進位制整數

十進位制整數轉換為二進位制整數採用"除2取餘,逆序排列"法。具體做法是:用2整除十進位制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數。

如此進行,直到商為小於1時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。

2.十進位制小數轉換為二進位制小數

十進位制小數轉換成二進位制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進位制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積。

再將積的整數部分取出,如此進行,直到積中的小數部分為零,此時0或1為二進位制的最後一位。或者達到所要求的精度為止。

然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。

13樓:足壇風行者

十進位制小數0.8125轉換二進位制的值是:0.1101,計算過程:

0.08125*2=1.625,取1留下0.625繼續乘2;

0.625*2=1.25,取1留下0.25繼續乘2;

0.25*2=0.5,取0留下0.5繼續乘2;

0.5*2=1,取1結束。

最終十進位制0.8125換算成二進位制是0.1101。

擴充套件資料計算機中的十進位制小數轉換二進位制的方法如下:

計算機中的十進位制小數用二進位制通常是用乘二取整法來獲得的。

比如0.65換算成二進位制就是:

0.65 × 2 = 1.3 取1,留下0.

3繼續乘二取整0.3 × 2 = 0.6 取0, 留下0.

6繼續乘二取整0.6 × 2 = 1.2 取1,留下0.

2繼續乘二取整0.2 × 2 = 0.4 取0, 留下0.

4繼續乘二取整0.4 × 2 = 0.8 取0, 留下0.

8繼續乘二取整0.8 × 2 = 1.6 取1, 留下0.

6繼續乘二取整0.6 × 2 = 1.2 取1,留下0.

2繼續乘二取整.......

一直迴圈,直到達到精度限制才停止(所以,計算機儲存的小數一般會有誤差,所以在程式設計中,要想比較兩個小數是否相等,只能比較某個精度範圍內是否相等)。這時,十進位制的0.65,用二進位制就可以表示為:

0.1010011。

14樓:匿名使用者

小數部分

0.8125×2=1.625,取1

0.625×2=1.25,取1

0.25×2=0.5,取0

0.5×2=1,取1

(0.8125)10=(0.1101)2

15樓:一角錢半分貨

string s1 = t1.value, s2 = t2.value;//s1是十進位制數,s2是進位制 就這題而言是2

int n1 = 0, n2 = 0, x = 1, resoult = 0;

int.tryparse(s1, out n1);

int.tryparse(s2, out n2);

while (n1 >= n2)

resoult += n1 * x;

t3.value = resoult.tostring();

這個**是asp.*** 基於 整數編寫的 原理一樣,需要稍作調整.僅供參考,隨手之作

為什麼十進位制轉二進位制小數要乘2 10

16樓:四舍**入

乘2取整,順序排列,抄是十進位制小數轉換bai為二進位制du的方法。

十進位制轉二進zhi制是遵從以下規則:

1、將整數部dao分輾轉相除2,將餘數倒序排列,即整數部分的二進位制數。

2、將小數部分輾轉相乘2,將乘積的個位數部分正序排列,即小數部分的二進位制數。

17樓:匿名使用者

因為從二進位制copy到10進位制是每位乘以一個bai權值

比如du

101.101=1*2^2+0*2^1+1*2^0+ 1*2^-1 +0*2^-2 + 1*2^-3

=4+0+1+0.5+0+0.125=5.625;

同樣zhi,從10進位制到2進位制也就是

5.625

整數部分 5/2=2 5%2=1, 2/2=1,2%2=0,1/2=0,1%2=1;所以5=101b

小數部分 0.625*2=1.25取整,得1,再取小數0.25*2=0.50取整得0,再用0.50*2=1.0取整得1

所以小dao資料部分就得101.

綜上計算過程,你應該能看懂為什麼要*2吧

其根本原因就是 10進位制和2進位制轉換是靠 2的權值進行的

18樓:歐陽雲在

??bai?

在計算機中,機器用2進位制來表

du達zhi真實的世界!

我們的10進位制也可以dao用2進製表版

達。一個2進位制數字,左移權一位,相當於乘以2,這樣就可以把原來的小數中的高位表示出來,例如0.25 轉換成2進位制,他的2進製為n(假設),n*2=0.

5,這樣,n的高位(n小數點後一位)到整數部分,為0,再乘以2,n*2*2=1.0,這樣n的次高位(n小數點後第二位)到整數部分,為1,因為小數部分全為0,轉換結束,由此知道0.25 的 二進位制是0.

01;同理,把整數右移位,可以把整數進行轉換;

(第一次回答問題,呵呵!)

怎樣把二進位制小數轉十進位制?將(10 10111 2轉化為十進位制咋轉化

您是問原理?還是想要處理程式?如果是問演算法原理,那麼以 10.10111 2為例,轉換演算法就是 1 2 1 0 2 0 1 1 2 0 1 2 2 1 1 2 3 1 1 2 4 1 1 2 5 2.71875 如果是想要處理程式,那麼 一 如果您輸入的是整數,可以看一下下面的資料 這個資料中給...

將八進位制數76轉換為十進位制數,將十進位制數76625轉換成八進位制數為

是63喲,32 16 8 4 2 1 63 將十進位制數76.625轉換成八進位制數為 將十進位制數76.625轉換成八進位制數為114.5。參考過程如下 76 8 9 4 9 8 1 1 1 8 0 1 把餘數從下往上排,故整數部分為114 0.625 8 5 小數部分為0.5 所以答案為114....

小數部分二進位制轉十進位制的方法,含小數的二進位制轉10進位制怎麼轉?

十進位制小數轉換為二進位制小數 十進位制小數轉換成二進位制小數採用 乘2取整,順序排列 法。具體做法是 用2乘十進位制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。然後把取出的整數部分按順...