tft每日頭條

 > 圖文

 > 為什麼計算機中常用二進制

為什麼計算機中常用二進制

圖文 更新时间:2024-08-01 21:59:35
十進制數據

在講解二進制數據之前,我們先來看看我們最常用的十進制數據。

從小學讀書起,我們就開始學習數學,最簡單的加法有:

5 3 = 8;

5 5 = 10;

10 16 = 26;

看到這樣的加法算術很簡單,它隻有一個規則:

(1) 個位數與個位數相加,滿10進1;

(2) 十位數與十位數相加,滿10進1;

(3) 百位數與百位數相加,滿10進1;

...

以此類推,這種規則表示的數,我們稱為:十進制數;

表示十進制數的元素就有:

0,1,2,3,4,5,6,7,8,9

這樣的10個數值;

所以,從我們最常見的算術開始,我們了解了十進制數。它的規則就是:滿10進1;那麼,根據這個規則,我們可以定義N進制數,它的規則就是:

(1) 表示N進制數的元素,有N個符号;

(2) 數據的表示,是滿N進1;

二進制數據

通過上一節的講解,我們知道二進制就是由0和1組成的數字,它表示電子設備的打開和關閉狀态。計算機中存儲的任何數據都是二進制數據。

為什麼計算機中常用二進制(計算機裡的二進制和十六進制是什麼關系)1

例如十進制3這個數值,在計算機中都表示成的二進制數據是11這樣數值。如果十進制3這個數值存放到1個字節中,1個字節使用8位表示,那麼,表示的數值是 0000 0011,所以,表示8位二進制數據。

根據上面提到N進制數規則,我們定義二進制數的規則是:

(1) 表示二進制數的元素有 2 個符号,就是0和1這兩個數值;

(2) 二進制數的表示是滿2進1;

知道了二進制數據的表示方法,那麼,我們試着把十進制19這個數值的二進制數據寫出來。

把十進制數據轉換成二進制數據,使用的方法是:除2取餘法,計算過程如下:

19/2 = 9餘1

9/2 = 4餘1

4/2 = 2餘0

2/2 = 1 餘0

1/2 = 0餘1

除到商為0的時候停止;

然後,從最末尾的餘數開始往上取,得到10011這個二進制數據。所以,十進制19這個數值的二進制數據就是10011。如果把十進制19這個數值存放到1個字節的變量中,那麼,在1個字節的内存中表示為0001 0011,因為1個字節是8位,上面我們求出10011二進制數據占據了5位,那麼,剩下的高3位沒有數據填充,所以,填充0值。

所以,我們可以總結十進制轉二進制的方法:

(1) 采用除2取餘法;除到商為0的時候停止。

(2) 餘數從下往上取;

(3) 高位補零;

現在我們試着把二進制轉換為十進制。在轉換之前,我們先看看十進制表示的一個例子。例如189這樣的一個數值,在數值序列中,從右邊開始算起,從0開始計算,就有:

9在第0位,8在第1位,1在第2位,那麼,就可以表示為:

1*10^2 8*10^1 9*10^0 = 100 80 9 = 189

那麼,是十進制表示,所以,基數為10,例如第2位,就有10^2 表示10的2次方,就是10*10,這就是第2位的權重值;注意:在數學計算中,任何數的0次方,都等于1。 所以有:

1*10^2 8*10^1 9*10^0

= 1*100 8*10 9*1

= 100 80 9

= 189

所以,我們可以總結N進制數值的表示算法:

(1) 每個位置上的數值,與權重值相乘,然後求和;

(2) 權重值是N^x,表示N的x次方,x是數值在數值序列上的位置;位置從右邊開始算,從0開始;

同理,我們就把10011這個二進制轉換為十進制,也是使用相同的算法。

把10011這個數值序列解開,從右邊開始計算,第0位是1,第1位是1,第2位是0,第3位是0,第4位是1;

那麼是二進制表示,所以,基數為2,例如第3位,就有2^3的權重,就有:

1*2^4 0*2^3 0*2^2 1*2^1 1*2^0

= 16 0 0 2 1

= 19

所以,我們把19這個十進制轉換成了10011二進制數據,再把二進制數據轉換為十進制數據。

再多舉一個例子,把18 這個數值轉換為二進制表示,有:

18/2 = 9 餘 0

9/2 = 4 餘 1

4/2 = 2 餘 0

2/2 = 1 餘 0

1/2 = 0 餘 1 //除到商等于0的時候,停止計算;

然後,從下往上取餘數,得到10010二進制數據。然後,10010二進制轉換為十進制數據,有:

1*2^4 0*2^3 0*2^2 1*2^1 0*2^0

= 16 0 0 2 0

= 18

通過這些例子的分析,我們講解了二進制的表示形式和二進制與十進制數值間的相互轉換。

十六進制數據

在介紹十進制數的時候,我們已經定義了N進制數,它的規則就是:

(1) 表示N進制數的元素有N個符号;

(2) 滿N進1;

為什麼計算機中常用二進制(計算機裡的二進制和十六進制是什麼關系)2

那麼,十六進制數就是有16個符号表示,如下:

0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F

其中字符A表示10數值,字符B表示11數值,字符C表示12數值,字符D表示13數值,字符E表示14數值,字符F表示15數值。注意:這個字符,也可以使用小寫字符a、b、c、d、e、f表示。

在學習二進制數據的時候,我們知道,把一個十進制數據轉換N進制數據,采取除N取餘法。所以,把一個十進制數據轉換為十六進制,就是采取:除16取餘法。例如,把十進制數18這個數值,轉換為16進制,有如下的計算:

18/16 = 1 餘 2

1/16 = 0餘1

然後,從下往上取餘數,得到十六進制數12這樣的數值。但是,我們有些疑惑,當我們看到12這個數值的時候,如果不表明是十六進制,我們可能會認為是十進制數據。

所以,在計算機系統中,我們定義十六進制數,使用0x前綴表示。所以,上面計算出來的十六進制數據就可以表示為0x12。當我們看到一個數值,如果是以0x開頭,就表示這個數據是十六進制數據。

那麼,我們把十六進制數0x12數值,轉換為十進制數,算法與二進制轉換為十進制數一樣。對于0x12數值序列,第0位是2,第1位是1,所以有:

1*16^1 2*16^0

= 16 2

= 18

此時,就可以把十六進制0x12數值對應的十進制計算出來了。我們再計算一個例子,計算十進制是169的數值,轉換為十六進制,有:

169/16 = 10 餘 9

10/16 = 0 餘 10

其中,十進制10數值使用十六進制字符A表示,所以,得到的十六進制數是0xA9。注意,對于10~15的數值,在十六進制中,使用字符A~F(或者小寫字母a~f)進行表示。例如十進制15這個數值,使用十六進制表示,就是0xF。

現在,我們把0xA9這個十六進制轉換為十進制,計算方式如下:

A*16^1 9*16^0

= 10 * 16 9 * 1

= 160 9

= 169

注意,在計算的時候,十六進制的字符A表示十進制的10這個數值。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved