二進位與十進位的轉換方法

2021-02-14 儋州學考幫

一、數制簡介

二進位

20世紀被稱作第三次科技革命的重要標誌之一的計算機的發明與應用,其運算模式正是二進位,二進位是計算技術中廣泛採用的一種數制。二進位數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。直到20世紀30年代中期,美國科學家馮.諾依曼大膽地提出:拋棄十進位,採用二進位作為數字計算機的數制基礎。從此以後,計算機的研究飛速發展,人們把馮.諾依曼的這個理論稱為"馮.諾依曼體系機構。直到現在當前的計算機系統使用的基本上是二進位系統。

   十進位

十進位計數法是相對二進位計數法而言的,是我們日常使用最多的計數方法(俗稱「逢十進一」),它的定義是:「每相鄰的兩個計數單位之間的進率都是十」的計數方法,叫做「十進位計數法」。

二、轉換方法


    十進位數轉換為二進位數時,由於整數和小數的轉換方法不同,所以先將十進位數的整數部分和小數部分分別轉換後,再加以合併。

1、十進位整數轉換為二進位整數
案例1:

   註:十進位轉二進位方法

 十進位整數轉換為二進位整數採用"除2取餘,逆序排列"法。具體做法是:用2去除十進位整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位數的低位有效位,後得到的餘數作為二進位數的高位有效位,依次排列起來。也叫「倒序取餘」

案例2:

如:255(十進位)=11111111(二進位)

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

案例3:

如:789=1100010101

789/2=394.5 =1 第10位

394/2=197 =0 第9位

197/2=98.5 =1 第8位

98/2=49 =0 第7位

49/2=24.5 =1 第6位

24/2=12 =0 第5位

12/2=6 =0 第4位

6/2=3 =0 第3位

3/2=1.5 =1 第2位

1/2=0.5 =1 第1位

2、十進位小數轉二進位小數

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

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

十進位小數轉二進位

案例1:如 0.625=(0.101)B

0.625*2=1.25======取出整數部分1

0.25*2=0.5========取出整數部分0

0.5*2=1==========取出整數部分1

案例2  如 0.7=(0.1 0110 0110...)B

0.7*2=1.4========取出整數部分1

0.4*2=0.8========取出整數部分0

0.8*2=1.6========取出整數部分1

0.6*2=1.2========取出整數部分1

0.2*2=0.4========取出整數部分0 

0.4*2=0.8========取出整數部分0

0.8*2=1.6========取出整數部分1

0.6*2=1.2========取出整數部分1

0.2*2=0.4========取出整數部分0    [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,只能餘下。

商得:

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

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


十進位小數轉換為二進位小數原理

關於十進位小數轉換為二進位小數

假設一十進位小數B化為了二進位小數0.ab的形式,同樣按權展開,得

B=a(2^-1)+b(2^-2)

因為小數部分的位權是負次冪,所以我們只能乘2,得

2B=a+b(2^-1)

注意a變成了整數部分,我們取整數正好是取到了a,剩下的小數部分也如此。

值得一提的是,小數部分的按權展開的數位順數正好和整數部分相反,所以不必反向取餘數了。

三、內容擴展

在我們的生活中除了二進位之外還有沒有其他的數制呢?其實在我們的生活中還有很多數制存在,比如我們的時間1小時有60分,逢60進1,也就是六十進位,比如1星期有7天,這是7進位,再比如舊時的秤一斤有16兩,他們使用的是十六進位,所以有了「半斤八兩」的說法。由於二進位數是計算機進行計算的基本進位,它能方便地通過0和1兩種狀態表示各種數值,這使得邏輯電路的設計簡潔。八進位和十六進位對二進位的轉換十分方便,同時又能將較大的二進位數以較短的字數來表示,便於人們書寫和記錄,所以使用八進位和十六進位來表達二進位數。下面我們就來說說八進位、十六進位和十進位數之間的轉換。

1、二進位和十六進位轉換

如果把四位二進位數看作一個整體,那麼剛好與十六進位的一個數對應。因此,如果從二進位數的最低位起向高位每四位一組(不足四位時補0),再把每組對應為十六進位數碼,就可以將二進位數轉化成十六進位數了


案例1:(10111101010)= 0101  1110 1010 =5EA

反過來,若將十六進位的每個數碼寫成四位的二進位數(不足四位時補0),就將十六進位數轉化成二進位數啦

案例2:(1A2B)=0001 1010 0010  1011


案例3:(ABCD)=1010  1011 1100  1101


2、八進位和十進位的轉換

案例1八進位數56轉換為十進位數

  56=5*81 +5*80 =40+5=45


案例2: 十進位數轉換為八進位數

 8|79  ……  7

 8|9   ……   1

 8|  ……  1

得出結果為:餘數取反法,即結果為117

相關焦點

  • 二進位-八進位-十進位-十六進位之間的相互轉換
    10年前,在大學裡學習了數字電路,課本中講到了進位之間的相互轉換,最近用到數字晶片74HC125,涉及到TTL-CMOLS
  • 十進位和二進位之間的轉換
    既然一個數可以用二進位和十進位兩種不同形式來表示,那麼兩著之間就必然有一定的轉換關係。  由十進位數的一般表示式:  重複上述過程直到商為0,就可由所有的餘數求出二進位數。  例題 1.3.3 將(25)D轉換為二進位數。
  • 二進位與十進位
    在這些原理中,二進位可以說是基礎中的基礎。因為計算機所採用的就是二進位數字系統。 同學們好,我是大風。歡迎大家來到大風編程課堂。今天由我來為大家講解二進位與十進位的相關理論與應用實例。為什麼要講這個呢?因為我們知道,人類日常生活中,表示數字大多是用的十進位。而計算機不同,它不能直接識別十進位數據。
  • 二進位與十進位如何互相轉換?
    距離考試倒計時11天最近好幾個同學問小楠,二進位與十進位是如何轉換的
  • 二進位轉換為十進位和十進位轉換為二進位的方法
    各位小夥伴們大家好,在之前的文章中小編也介紹了關於二進位轉十進位的方法,這次小編知道了一個更簡單的方法,具體如下:比如我們要把28轉為二進位:28轉換為2進位先用2的n次方來表示28這個數,然後用2的n次方乘以1或者乘以0,相加來湊成與之相等的數,得到的1或者是0,根據這個表格,從左往右把二進位數字湊在一起,11100就是
  • 二進位,八進位,十進位,十六進位轉換詳解~
    2.  方法二:八進位···>十進位···>二進位             2268 = 2×8^2 + 2×8^1 + 6×8^0 = 15010             15010 = 100101102       (一位八進位數可轉換為三位二進位數,整數不夠三位在左側補0,小數在右側補0)      100101102 = (
  • 十進位與二進位、八進位、十六進位互轉
    所以13轉化二制為1101可以用轉化工具測試https://tool.lu/hexconvert/理解十進位如何轉換為二進位算法,那我們用PHP代碼實現一下1.輸出結果是1101,這種方法特別簡單,但實現原理你知道麼?你不知道。。。
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    ②轉換方法十進位整數化為非十進位整數採用「餘數法」,即除基數取餘數。把十進位整數逐次用任意十制數的基數去除,一直到商是0 為止,然後將所得到的餘數由下而上排列即可。③十進位小數轉換成非十進位小數轉換方法十進位小數轉換成非十進位小數採用「進位法」,即乘基數取整數。
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    那麼,我們可以得出結果將0.45轉換為二進位約等於0.0111 上面介紹的方法是十進位轉換為為二進位的方法,需要大家注意的是: 1) 十進位轉換為二進位,需要分成整數和小數兩個部分分別轉換 2) 當轉換整數時,用的除2取餘法,而轉換小數時候,用的是乘2取整法 3
  • 【二進位】----十進位數轉換成二進位數
    我們今天就來看看十進位的數和二進位的數是如何轉換的。                           數學問題                           我們通過下面的例子來看看如何將十進位的數轉換成二進位的數。
  • python進位轉換:十進位轉二進位的用法
    我們在學習python時候肯定會碰到關於進位轉換,其實這是非常簡單的,這個就像小學學習數學乘法口訣意義,只要記住轉換口訣即可輕鬆應用,一起來看下具體的操作內容吧~一、python進位轉換dec(十進位)—> bin(二進位)dec(十進位)—> oct(八進位)dec(十進位)—> hex(十六進位)二、十進位我們所熟知的十進位,其實是從 0 開始,數到 9 之後,就跳到
  • 計算機進位的轉換
    1、 最常見的是十進位轉換成二進位,主要有三種方法:比如我們吧十進位的45,轉換成二進位:(1)、方法1除2取餘,最後結果是101101如下圖所示(從下往上讀):(2)、我們也可以採用8421碼進行計算,如下圖所示
  • 6、計算機進位之二進位、十進位、十六進位之間的轉換
    4、進位之間的轉換4.1、正整數的十進位轉換二進位將一個十進位數除以二,得到的商再除以二,依此類推直到商等於一或零時為止,倒取除得的餘數,即換算為二進位數的結果4.2、二進位轉換為十進位二進位轉十進位的轉換原理:從二進位的右邊第一個數開始,每一個乘以2的n次方,n從0開始,每次遞增1。然後得出來的每個數相加即是十進位數。
  • 常用的二進位與八進位-十進位-十六進位之間的轉換
    1k1024k = 1M1024M = 1G1024G = 1Tb(bit) = 比特B(byte) = 字節KB = 千字節MB = 兆字節GB = 吉字節TB = 太字節內存中以二進位形式存儲數據,一個漢字一般為2位元組後面s只是因為數字不為1,
  • 清晰說明十進位如何快速轉二進位,助力考生
    關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結>今天之所以又寫這篇文章,一是補充上文中的缺憾,沒有分享十進位到二進位最快的方法;再就是響應平臺號召,助力高考。我想這可能會是一個趨勢,現在的編程教育不斷向前提,所以不好說,而且小編在某處看到這樣一句話:【高考】考綱二 數值的概念、二進位整數、十進位整數和十六進位整數的相互轉算也算是一個偏門的預測了吧,何況,進位的轉換在我們日常的編程中也經常會用到,對於十進位到二進位的轉換更多的是在初級的考試中。掌握了今天的方法,可謂兩個字吧,快!準!
  • 一文幫你詳細圖解二進位、八進位、十進位、十六進位之間的轉換
    方法:二進位數從低位到高位(即從右往左)計算,第0位的權值是2的0次方,第1位的權值是2的1次方,第2位的權值是2的2次方,依次遞增下去,把最後的結果相加的值就是十進位的值了。方法:八進位數從低位到高位(即從右往左)計算,第0位的權值是8的0次方,第1位的權值是8的1次方,第2位的權值是8的2次方,依次遞增下去,把最後的結果相加的值就是十進位的值了。八進位就是逢8進1,八進位數採用 0~7這八數來表達一個數。例:將八進位的(53)O轉換為十進位的步驟如下:1. 第0位 3 x 8^0 = 3;2.
  • 計算機等級考試詳解:十進位數92轉換為二進位數!
    計算機等級考試詳解:十進位數92轉換為二進位數!本經驗由宗龍龍原創,全文共1000多字,閱讀需要14分鐘,如果文中存在錯誤,還請大家多多指點,我會積極改進的!14、十進位數92轉換為二進位數是()。A)01011100B)01101100C)10101011D)01011000(圖片來源於網絡)這一題主要考察的是十進位與二進位的相互轉換問題。
  • EV3關於10進位轉換2進位的詳解
    哈咯各位大家好之前突發奇想想做一個關於十進位轉化成二進位的想法,在這裡給大家講解一下。關於數字有多進位的,十進位、二進位、三進位、八進位、十六進位....等等。對我們最熟悉的莫過於十進位和二進位了,接下來給大家講解下如何實現將十進位轉化為二進位。【1】十進位我們最熟悉,我在這裡不多做解釋,只說十進位怎麼運算,例如302,可以看成從右往左以索引倒敘分別從0開始,進行注釋。
  • Cortex―M0單片機二-十進位整數轉換的快速算法
    摘要:為了提高Cortex—M0系列單片機應用系統的二進位到十進位BCD碼整數轉換代碼的執行效率,採用除十求餘數法來實現。許多單片機應用系統中都需要進行二進位整數轉換為十進位BCD碼的操作,以便實現系統信息的顯示。對於Cortex—M0系列單片機,由於其指令系統中沒有十進位調整指令和除法指令,使得一些文獻中提供的高效算法和技巧不再適用於這類單片機,從而造成上述轉換操作成為影響系統性能的重要因素,因此提高上述數制轉換速度對於提高系統運行效率有極大的促進作用。
  • Day7 進位的表示與轉換
    這節課的內容太簡單了……學習進位的轉換。在計算機中,我們常用的進位有4種。一、二進位(Binary)在二進位裡,只有 0 和 1,二進位的運算遵循逢二進一。在 python 中要輸入一個二進位數,你不能直接輸入。比如我輸入一個 666 看看。很明顯這是個十進位。