十進位制小數轉化為二進位制什麼叫所求精度為止

時間 2021-05-06 00:42:39

1樓:匿名使用者

很多情況下,十進位制小數是不能夠轉換成一個嚴格相等的二進位制小數的,會出現二進位制小數是個無窮小數的狀況,這時,就只好保留小數點之後的多個小數位數以滿足精度要求,轉換後的二進位制小數只能約等於轉換前的十進位制小數。

十進位制小數轉化為二進位制什麼叫所求精度為止?

2樓:yty隨意

只保留小數點之後的多個小數位數以滿足精度要求,轉換後的二進位制小數只能約等於轉換前的十進位制小數。操作方法如下:

1、首先,定義兩個整型變數,儲存計算出的每位二進位制數和二進位制位數的統計。

2、定義一個實型變數,儲存計算的十進位制小數。

3、輸入一個十進位制小數,儲存在變數d中。

4、do-while迴圈中,將十進位制小數乘以2。

5、取十進位制數的整數部分,儲存在變數b中。

6、輸出該位的二進位制數,同時將十進位制數的整數部分減掉。

7、執行程式,輸入任意一個十進位制小數,計算機就會輸出相應的二進位制小數(10位以內)。

3樓:匿名使用者

十進位制轉二進位制的方法:整數部分採用「除基取餘法」;小數部分採用「乘基取整法」。

在小數部分的轉換過程中,有可能出現乘積小數部分始終不為0的情況,也就是轉換過程可能無限進行下去,這時就根據精度要求來決定所取位數,這時得到的二進位制就是原十進位制的近似值。

一個二進位制可以準確轉換成十進位制,但一個帶小數的十進位制不一定能夠準確地用二進位制來表示。

十進位制轉化為二進位制小數部分。什麼叫位數精確

4樓:匿名使用者

將十進位制數來的純小數

(不包源括乘後所得的整數部分)反覆乘以2,直到乘積的小數部分為0或小數點後的位數達到精度要求為止。

所謂小數點後的位數達到精度要求,就是指小數部分為0,有的小數永遠也不為0呢?那就按照題目要求保留幾位就行了,這時候就「為止」了。

說白了,這就像小學數學裡的「計算結果保留幾位小數」一樣啊。

5樓:匿名使用者

十進位制來

小數→二進位制小數自:(1)把十進位制小數乘以2,得到積,把積的整數部分提出;(2)再用所得積的小數部分乘以2,得到積,把積的整數部分提出;(3)重複步驟2;(4)乘以2過程中提出的各個整數部分組成轉換後的二進位制小數。權的確定規則:

最先提出的整數是二進位制小數的最高位。實際上,除了象0.5,0.

25等這些每次乘2尾數都為0的小數能化為有限二進位制小數外,絕大部分都只能化為二進位制的無限迴圈小數。這種情況下,你只要取足夠精確的位數就夠了。

休閒看電影就到:速雷看看、異火網影院

6樓:匿名使用者

先看看下列二進抄制

和襲十進位制小數的對應關係bai:

二進位制du

zhi 十進位制

二進位制dao 0.1 = 十進位制 0.5

二進位制 0.01 = 十進位制 0.25

二進位制 0.001 = 十進位制 0.125二進位制 0.0001 = 十進位制 0.0625這樣,有的十進位制小數不一定能正好表達為二進位制,如:

二進位制的0.011 = 十進位制的 0.375二進位制的 0.

010 = 十進位制的 0.250二進位制的 0.0101 十進位制的 0.

3125如果要把十進位制小數0.3表達為二進位制,並且精度為小數3位,則等於0.01;如果精度為小數4位,則表達為 0.

0101

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

7樓:仁昌居士

十進位制小數

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

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

8樓:畫皮炫亮

什麼時候乘復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。

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

9樓:嘻哈

將小數部分乘以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方式計算出,然後再用小數點接到一起作為二進位制的結果

10樓:

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

十進位制的小數怎麼轉換成二進位制

11樓:薔祀

可以採用乘2取整法,即將小數部分乘以2,然後取整數部分,

剩下的小數部分繼續乘以2,然後取整數部分,剩下的小數部分又乘以2,一直取到小數部分為零為止。

如果永遠不能為零,就同十進位制數的四捨五入一樣,按照要求保留多少位小數時,就根據後面一位是0還是1,取捨,如果是零,舍掉,如果是1,向入一位。換句話說就是0舍1入。讀數要從前面的整數讀到後面的整數。

下面舉例:

例1:將0.125換算為二進位制,結果為:將0.125換算為二進位制(0.001)2 。

分析:第一步,將0.125乘以2,得0.25,則整數部分為0,小數部分為0.25。

第二步, 將小數部分0.25乘以2,得0.5,則整數部分為0,小數部分為0.5。

第三步, 將小數部分0.5乘以2,得1.0,則整數部分為1,小數部分為0.0。

第四步,讀數,從第一位讀起,讀到最後一位,即為0.001。

擴充套件資料

十進位制整數轉換為二進位制整數計算的方法:十進位制整數轉換為二進位制整數採用"除2取餘,逆序排列"法。具體做法是:

用2整除十進位制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為小於1時為止。

然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。

如:255=(11111111)b

255/2=127*****餘1

127/2=63*****=餘1

63/2=31*****==餘1

31/2=15*****==餘1

15/2=7*****===餘1

7/2=3*****====餘1

3/2=1*****====餘1

1/2=0*****====餘1

789=1100010101(b)

789/2=394 餘1 第10位

394/2=197 餘0 第9位

197/2=98 餘1 第8位

98/2=49 餘0 第7位

49/2=24 餘1 第6位

24/2=12 餘0 第5位

12/2=6 餘0 第4位

6/2=3 餘0 第3位

3/2=1 餘1 第2位

1/2=0 餘1 第1位

原理:眾所周知,二進位制的基數為2,十進位制化二進位制時所除的2就是它的基數。談到它的原理,就不得不說說關於位權的概念。

某進位制計數制中各位數字符號所表示的數值表示該數字符號值乘以一個與數字符號有關的常數,該常數稱為 「位權 」 。

位權的大小是以基數為底,數字符號所處的位置的序號為指數的整數次冪。十進位制數的百位、十位、個位、十分位的權分別是10的2次方、10的1次方、10的0次方,10的-1次方。二進位制數就是2的n次冪。

按權求和正是非十進位制化十進位制的方法。

下面我們開講原理,舉個十進位制整數轉換為二進位制整數的例子,假設十進位制整數a化得的二進位制數為edcba 的形式,那麼用上面的方法按權, 得:

a=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4)

假設該數未轉化為二進位制,除以基數2得:

a/2=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2

注意:a除不開二,餘下了!其他的絕對能除開,因為他們都包含2,而a乘的是1,他本身絕對不包含因數2,只能餘下。

商得:b(2^0)+c(2^1)+d(2^2)+e(2^3),再除以基數2餘下了b,以此類推。

當這個數不能再被2除時,先餘掉的a位數在原數低,而後來的餘數數位高,所以要把所有的餘數反過來寫。正好是edcba。

12樓:匿名使用者

將小數部分乘以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方式計算出,然後再用小數點接到一起作為二進位制的結果

13樓:知識之窗

第二種方法就是公式轉換。這種比較麻煩。轉換公式 就是採用"乘2取整,順序排列"法。

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

十進位制轉二進位制的計算方法,二進位制轉化為十進位制怎麼算

例如十進位制數。這個要分開成36和來算。則36的二進位制數為100100 2 5 2 2 32 4 取1,餘。取1,餘0 則的二進位制數為。的二進位制數為。舉一個例子 將十進位制的25轉為二進位制的數。25 2 餘數 然後我們將餘數按從下往上的順序書寫就是 11001,那麼這個11001就是十進位制...

c語言十進位制數轉化為二進位制數,C語言 十進位制數轉化為二進位制數

思路 十進位制整數轉換為二進位制整數採用 除2取餘,逆序排列 法。即用2整除十進位制整數,可以得到一個商和餘數 再用2去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。include stdi...

十進位制轉二進位制演算法,二進位制轉十進位制,十進位制轉二進位制的演算法 求助

向前看 如果要將十進位制數轉換為二進位制數,則應將十進位制數的整數部分和小數部分分別轉換為二進位制數,然後將這兩部分的二進位制數合併得到完整的二進位制數。首先,通過短除法,十進位制數可以除以2得到多個餘數。最後,將餘數從下到上進行排列組合,得到二進位制數。然後將小數部分乘以2,取每一步的整數部分,從...