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

2021-03-22 09:08:49 字數 5362 閱讀 1057

1樓:匿名使用者

小數點後面的進位制轉換採用估值,一般手算是這樣的:十進位制轉二進位制,將小數點後的數單獨拿出來(就是去掉前面的整數部分為零),然後乘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進位制數這句話就可以了。基本上進位制轉換就是這個方法,當然除了考試以外,你還是用電腦自帶的計算器完成吧。

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

2樓:匿名使用者

跟前面的一樣啊

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

即0.5,0.25,0.125

3樓:

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

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

4樓:匿名使用者

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

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

二進位制後面的小數點怎麼算?

5樓:匿名使用者

二進位制轉十進位制:

個位上的數字的次數是

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進位制值。

6樓:熙苒

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

把十進位制小數乘以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兩個數字符號,非常簡單方便,易於用電子方式實現。

7樓:devil小豬蹄子

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

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

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

8樓:匿名使用者

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

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

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

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

9樓:匿名使用者

取小數點後的數(例如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

整數和小數分開處理

10樓:匿名使用者

比如1.11

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

其他的也同理

十進位制轉化為十六進位制怎麼算

11樓:深圳俊竹科技****

十進位制轉化為十六進位制計算方式,簡單說就是整數除以16取餘,直到商為0為止,然後從最後一個餘數讀到第一個

十六進位制轉化為十進位制計算方式,按權、相加即得十進位制數。

12樓:肥仙女

十進位制轉化為十六進位制**:

#include "stdio.h" int main();printf("請輸入一個十進位制數:");

scanf("%d",&num); while(num>0)  printf("轉化為十六進位制的數為:0x"); for(i=i-1;i>=0;i--)//倒序輸出  printf("\n");

}程式執行結果:

擴充套件資料:進位制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。

位權是指,進位制中每一固定位置對應的單位值。

舉例:二進位制數轉換為十進位制數

二進位制數第0位的權值是2的0次方,第1位的權值是2的1次方……所以,設有一個二進位制數:0110 0100,轉換為10進製為:

下面是豎式:

0110 0100 換算成十進位制

第0位 0 * 20 = 0

第1位 0 * 21 = 0

第2位 1 * 22 = 4

第3位 0 * 23 = 0

第4位 0 * 24 = 0

第5位 1 * 25 = 32

第6位 1 * 26 = 64

第7位 0 * 27 = 0

公式:第n位2(n)

---------------------------100用橫式計算為:

0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1* 26 + 0 * 27 = 100

0乘以多少都是0,所以我們也可以直接跳過值為0的位:

1 * 22 + 1 * 25 +1*26 = 100

二進位制轉十六進位制,十六進位制轉二進位制

十六進位制每一位代表十六,有0 f十六中選擇,而二進位制每一位只有0和1兩種選擇,如果要表示十六種選擇需要四位 1個十六進位制的數的範圍是0 15 每一個2進位制數可以表示2個數字既0和1 因此 16個數字 需要4個二進位制數來表示 2 2 2 2 16所以16進位制就可以轉換為 4個二進位制的數 ...

二進位制如何如何轉化為八進位制,十六進位制,我知道轉到8進位制需要數轉為,但是為什麼100對應的

很簡單因為二進位制逢2進1,而八進位制逢8進1,所以二進位制 000 八進位制0,二進位制001 八進位制1,二進位制010 八進位制2,二進位制011 八進位制3,二進位制100 八進位制4,二進位制101 八進位制5,二進位制110 八進位制6,二進位制111 八進位制7,二進位制1000 八進...

八進位制,十進位制,十六進位制化為二進位制

書上的短除方法想必你已經會了,介紹給你一種快方法 以十進位制轉二進位制為例 回 比如十進位制是22,又根答據二進位制的位權得到 16 8 4 2 1是可以拼湊成22的數 因為它們都比22小 那好,用22 16 6,所以二進位制先消耗掉一個16 在第5位上 剩下的是6,根據位權可以得到 可以組成6的是...