二進位制後面的小數點怎麼算二進位制轉化成十進位制的時候,後面的小數點怎麼算?

2021-03-05 09:22:24 字數 5416 閱讀 3170

1樓:匿名使用者

二進位制轉十進位制:

個位上的數字的次數是

0,十位上的數字的次數是1,......,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。

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

比如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。

擴充套件資料:

1、二進位制優點:

數字裝置簡單可靠,所用元件少;

只有兩個數碼0和1,因此它的每一位數都可用任何具有兩個不同穩定狀態的元件來表示;

基本運算規則簡單,運算操作方便。

2、二進位制缺點:

用二進位制表示一個數時,位數多。因此實際使用中多采用送入數字系統前用十進位制,送入機器後再轉換成二進位制數,讓數字系統進行運算,運算結束後再將二進位制轉換為十進位制供人們閱讀。

二進位制和十六進位制的互相轉換比較重要。不過這二者的轉換卻不用計算,每個c,c++程式設計師都能做到看見二進位制數,直接就能轉換為十六進位制數,反之亦然。

我們也一樣,只要學完這一小節,就能做到。

首先我們來看一個二進位制數:1111,它是多少呢?

你可能還要這樣計算:1 × 2º + 1 × 2¹ + 1 × 2² + 1 × 2³ = 1 × 1 + 1 × 2 + 1 × 4 + 1 × 8 = 15。

然而,由於1111才4位,所以我們必須直接記住它每一位的權值,並且是從高位往低位記,:8、4、2、1。即,最高位的權值為2³ = 8,然後依次是 2² = 4,2¹=2, 2º = 1。

記住8421,對於任意一個4位的二進位制數,我們都可以很快算出它對應的10進位制值。

2樓:熙苒

小數轉換方法———乘基取整法

把十進位制小數乘以2,取其積的整數部分作對應二進位制小數的最高位係數k -1 再取積的純小數部分乘以2,新得積的整數部分又作下一位的係數k -2 ,再取其積的純小數部分繼續乘2,…,直到乘積小數部分為0時停止,

這時乘積的整數部分是二進位制數最低位係數,每次乘積得到的整數序列就是所求的二進位制小數.這種方法每次乘以基數取其整數作係數.所以叫乘基取整法.

需要指出的是並不是所有十進位制小數都能轉換成有限位的二進位制小數並出現乘積的小數部分0的情況,有時整個換算過程無限進行下去.

此時可以根據要求並考慮計算機字長,取定長度的位數後四捨五入,這時得到的二進位制數是原十進位制數的近似值.

比如0.12就是把0.12不斷乘以2並取整數位為轉換結果位!

過程:0.42*2=0.

84 因為個位為0,所以取00.84*2=1.68 因為個位為1,所以取10.

68*2=1.36 因為個位為1,所以取1。。。。。。。最後得出0.

42的二進位制約為 0.011

二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。

當前的計算機系統使用的基本上是二進位制系統,資料在計算機中主要是以補碼的形式儲存的。計算機中的二進位制則是一個非常微小的開關,用「開」來表示1,「關」來表示0。

20世紀被稱作第三次科技革命的重要標誌之一的計算機的發明與應用,因為數字計算機只能識別和處理由『0』.『1』符號串組成的**。其運算模式正是二進位制。

19世紀愛爾蘭邏輯學家喬治布林對邏輯命題的思考過程轉化為對符號"0''.''1''的某種代數演算,二進位制是逢2進位的進位制。0、1是基本算符。

因為它只使用0、1兩個數字符號,非常簡單方便,易於用電子方式實現。

3樓:devil小豬蹄子

1.十進位制的小數轉換為二進位制,主要是小數部分乘以2,取整數部分依次從左往右放在小數點後,...

2.轉換為二進位制,將小數部分0.125乘以2,得0.25,然後取整數部分0

3.再將小數部分0.25乘以2,得0.5,然後取整數部分04.再將小數部分0.5乘以2,得1,然後取整數部分15.則得到的二進位制的結果就是0.001

4樓:匿名使用者

比如2進位制數 101.101 轉化為十進位制1 0 1 . 1 0 1

按次序來每個括號代表一個數

(2的2次方)+0+(2的0次方)+(2的-1次方)+0+(2的-2次方)

意思就是小數點 後面 按 -1 -2 -3 的次序來開方

5樓:匿名使用者

取小數點後的數(例如5.74->0.74)0.74*2=1.48 取整數1

0.48*2=0.96 0

0.96*2

.........

有時會無限不迴圈,這時一般保留幾位.

0.25*2=0.5 00.5*2=1 1(0.01)2=(0.25)10

整數和小數分開處理

6樓:匿名使用者

比如1.11

你先把它乘以4,就變成了111,變成十進位制,為7那麼1.11就應該是7/4=1.75

其他的也同理

二進位制轉化成十進位制的時候,後面的小數點怎麼算?

7樓:匿名使用者

呃……這說明你還沒有系統學過指數和冪。

2的-n次方,等於2的n次方的倒數。例如2的-3次方,就等於2的3次方的倒數,也就是1/8。

請問二進位制轉化為十六進位制時,小數點後面怎麼算?比如,1011001.10111麻

8樓:匿名使用者

小數點後面的進位制轉換採用估值,一般手算是這樣的:十進位制轉二進位制,將小數點後的數單獨拿出來(就是去掉前面的整數部分為零),然後乘2,取結果的整數部分,再取結果的小數部分乘2,再取整數部分,以此類推,除非是1/2的整數次,否則可以一直往下算,不過一般是取三位或四位有效數字,按照最後結果,從上到下取每次結果的整數部分。如果看不明白,可以看範例,如12.

3456dec轉為二進位制,整數部分就不說了,是1100,小數部分這樣算,將.3456看為0.3456再乘以2,得到0.

6912,取整數位0,再重複第一步,將0.6912乘以2得1.3824,取整數位1,繼續重複第一步,將0.

3824乘以2得0.7648,取整數位0,下面還是依次類推,一般算到3位就可以了,所以現在12.3456dec轉為二進位制數就是1100.

010bin。這是十進位制轉為二進位制,十進位制轉為八及十六進位制是同樣道理,只要將乘以2改為乘以8或者16就可以了。至於二進位制轉為十進位制,方法和整數位相同,例1100.

010bin轉十進位制,解法如下1100.010bin=0*2^0+0*2^1+1*2^2+1*2^3+0*2^(-1)+1*2^(-2)+0*2^(-3)=12.25比較前後兩個答案可以知道十進位制轉二進位制是很難得到精確的值的。

當然,如果你說有沒有可以直接將二進位制轉為八進位制或16進位制的方法,有1.二轉八:1011010.

1bin可以這樣看,001011010.100,然後每三位轉為八進位制數,如(001)=1,(011)=3,(010)=2,(100)=4,然後就得到八進位制數132.4oct。

2.十六轉二:f7.

28hex將十六進位制的每一位都轉為四位的二進位制數,即f=1111,7=0111,2=0010,8=1000,即可得到二進位制數11110111.00101000bin總之把握2^3=8,2^4=16這個道理以及,每位八進位制數相當於3位二進位制數,每位16進位制數相當於4位2進位制數這句話就可以了。基本上進位制轉換就是這個方法,當然除了考試以外,你還是用電腦自帶的計算器完成吧。

以上完全自己手打,樓主感激我吧,不知道有沒有讓你滿意。

9樓:匿名使用者

跟前面的一樣啊

只不過對應的是2的-1、-2、-3……次方

即0.5,0.25,0.125

10樓:

2^6 + 2^4+2^3+2^0 + 2^(-1) + 2^(-3) + 2^(-4) + 2^(-5)

十進位制轉化為二進位制,小數點後面的(小數部分)怎麼轉?

11樓:

小數轉換方法———乘基取整法

把十進位制小數乘以2,取其積的整數部分作對應二進位制小數的最高位係數k -1 再取積的純小數部分乘以2,新得積的整數部分又作下一位的係數k -2 ,再取其積的純小數部分繼續乘2,…,直到乘積小數部分為0時停止,這時乘積的整數部分是二進位制數最低位係數,每次乘積得到的整數序列就是所求的二進位制小數。這種方法每次乘以基數取其整數作係數。所以叫乘基取整法。

需要指出的是並不是所有十進位制小數都能轉換成有限位的二進位制小數並出現乘積的小數部分0的情況,有時整個換算過程無限進行下去。此時可以根據要求並考慮計算機字長,取定長度的位數後四捨五入,這時得到的二進位制數是原十進位制數的近似值。

十進位制轉二進位制小數點之後如何轉換

12樓:寶藏雲浩

十進位制轉二進位制轉換思路:

十進位制的小數轉換為二進位制,主要是小數部分乘以2,取整數部分依次從左往右放在小數點後,直至小數點後為0。

舉例:以十進位制的0.125,要轉換為二進位制的小數。

第一步:轉換為二進位制,將小數部分0.125乘以2,得0.25,然後取整數部分0

第二步:再將小數部分0.25乘以2,得0.

5,然後取整數部分0第三步:再將小數部分0.5乘以2,得1,然後取整數部分1第四步:

經過以上計算則得到的二進位制的結果就是0.001

13樓:匿名使用者

可以用權的辦法,小數點以後的權值依次是1/2 1/4 1/8 這樣的話表示 5.25 用(101.101)表示 或者參考ieee中關於浮點數的表示

14樓:匿名使用者

這個有幾種方法的!有一種是這樣的:比如0.

12就是把0.12不斷乘以2並取整數位為轉換結果位!過程:

0.42*2=0.84 因為個位為0,所以取00.

84*2=1.68 因為個位為1,所以取10.68*2=1.

36 因為個位為1,所以取1。。。。。。。最後得出0.42的二進位制約為 0.011

十進位制轉二進位制小數點之後如何轉換

十進位制轉二進位制轉換思路 十進位制的小數轉換為二進位制,主要是小數部分乘以2,取整數部分依次從左往右放在小數點後,直至小數點後為0。舉例 以十進位制的0.125,要轉換為二進位制的小數。第一步 轉換為二進位制,將小數部分0.125乘以2,得0.25,然後取整數部分0 第二步 再將小數部分0.25乘...

二進位制向右邊移小數點其值向左移小數點其值

就像十進位制右移一個小數點值乘10,左移一個小數點除以10.類似的,二進位制右移一個小數點值乘2,也就是擴大一倍。左移一個小數點值除以2,變成原本一半。一個二進位制數向右邊移一位小數點其值變為原先的2倍,向左邊移一位小數點其值變為原先的二分之一。二進位制數的小數點向右移n位,則其值擴大多少倍 2的n...

二進位制轉換16進位制二進位制轉換16進位制彙編

16進位制有數字0 9,還有a f,一共16個數碼。轉換的時候,先統一加上30h,然後要判斷是數字還是字母,數字的ascii碼和字母的ascii碼可不是一樣的哦。所以和3ah比較。如果是數字,不變 如果是字母,再加上7h 你的程式是用大寫字母表示,若是小寫字母,那應該再加上27h 數符在輸出時是按其...