數字及常用邏輯電路數字及常用邏輯電路
數字:
談到數字,有很多同學可能會覺的很可笑,數字?不就是1234……..這些嗎?是的,在日常的生活當中,我們用的一般都是十進制,但在計算機中,它只能識別二進制數,所以在這里我還得跟大家共同分析一下:
1、十進制: 十進制就是基數為“十”,所使用的數碼為0~9共10個數字。逢十進一。是我們每天都會運用到的,在這里就不多談了。
2、二進制: 二進制的基數為“二”,其使用的數碼只有0和1兩個。在計算機中容易實現,在常用的的實現方式中如:可以用電路的高電平表示1,低電平表示0;或者三極管截止時集電極的輸出表示1,導通時集電極輸出表示0。
3、十六進制:由于二進制位數太長,不易記憶和收寫,所以人們又提出了十六進制的書寫形式。我們在匯編語言中多數用十六進制。
二進制編碼 二進制編碼
在計算機中,是采用二進制數。因而,要在計算機中表示的數、字母、符號等都要以特定的二進制碼來表示,這就是二進制編碼。
一、二進制編碼的十進制數:BCD碼(Binary-Coded Decimal)
字母與字符的編碼
字母和各種字符($、#……)也必須按特定的規則用二進制編碼才能在機中表示。普通的是采用ASCII(
American Standard Code for Information Interchange)碼。0~9的ASCII碼為30H~39H,大寫字母A~Z的ASCII碼為41H~5AH。
二進制,十進制,十六進制數碼對照
|
十進制
|
8421BCD碼
|
二進制
|
十進制
|
8421BCD碼
|
二進制
|
1
|
1
|
0001
|
10
|
A
|
1010
|
3
|
3
|
0011
|
12
|
C
|
1100
|
5
|
5
|
00101
|
14
|
E
|
1110
|
7
|
7
|
0111
|
16
|
10
|
10000
|
二進制數的運算 算術運算:加、減、乘、除
邏輯運算:與、或、異或、異
一、二進制加法
規則為:(1)0+0=0
(2)1+0=0+1=1
(3)1+1=0,進位1
(4)1+1+1=1,進位1
如: 1 1 0 1
1 0 1 1
--------------------
1 1 0 0 0
二進制減法
規則為:(1)0-0=0
(2)1-1=0
(3)1-0=1
(4)0-1=1,有借位
如:1 1 0 0 0 1 0 0
- 0 0 1 0 0 1 0 1
--------------------------------
1 0 0 1 1 1 1 1
二進制乘法
規則為:(1)0×0=0
(2)0×1=0
(3)1×0=0
(4)1×1=1
如: 1 1 1 1
× 1 1 0 1
------------------
1 1 1 1
0 0 0 0
1 1 1 1
1 1 1 1
-------------------------
1 1 0 0 0 0 1 1
二進制除法:除法是乘法的逆運算
0 0 0 1 1 1
----------------------
1 0 1 )1 0 0 0 1 1
1 0 1
-------------
0 1 1 1
1 0 1
----------------
1 0 1
1 0 1
---------
0
二進制邏輯運算邏輯"與"的規則:
0與0=0
0與1=0
1與1=1邏輯"或"的規則: 1或0=1
1或1=1
0或0=0
邏輯"異或"的規則:0異或0=1
0異或1=1
1異或1=0
邏輯"異"的規則: 0的異為1
1的異為0
帶符號數的表示法一、機器數與真值
通常用最高位作為符號位,若字長為8位即D7為符號位,D6~D0為數字位,
符號位用0表示正,用1表示負如X=(01011011)B=+91X=(11011011)B=-91二、原碼按上所述,正數的符號位用"0"表示,負數的符號位用"1"表示,這種表示法就稱為原碼。
X=+105 [X]原=01101001
X=-105 [X]原=11101001
三、反碼
正數的反碼表示與原碼相同,最高位為符號位,用"0"表示正,其余位為數值位。
(+4)10=0 0 0 0 0 1 0 0
符號 二進制數值
(+31)10=0 0 0 1 1 1 1 1
(+127)10=0 1 1 1 1 1 1 1
而負數的反碼表示為它的正數的按位取反(連符號位)而形成的。
(+4)10=0 0 0 0 0 1 0 0
(-4)10=1 1 1 1 1 0 1 1 ----反碼表示
(+31)10=0 0 0 1 1 1 1 1
(-31)10=1 1 1 0 0 0 0 0 ----反碼表示
(+127)10=0 1 1 1 1 1 1 1
(-127)10=1 0 0 0 0 0 0 0 ----反碼表示
(+0)=0 0 0 0 0 0 0 0
(-0)=1 1 1 1 1 1 1 1 ----反碼表示
四、補碼
正數的補碼表示與原碼相同,即最高位為符號位,用"0"表示正,其余位為數值位。
如【+4】補=【+4】原=【+4】反=0 0 0 0 0 1 0 0
【+127】補=【+127】原=【+127】反=0 1 1 1 1 1 1 1
負數的補碼表示為它的反碼,并在其最后位(即最低位)加1形成。
如 【+4】原=0 0 0 0 0 1 0 0
【-4】反=1 1 1 1 1 0 1 1 是+4各位取反
【-4】補=1 1 1 1 1 1 0 0 反碼+1
【+31】原=0 0 0 1 1 1 1 1【-31】反=1 1 1 0 0 0 0 0
【-31】補=1 1 1 0 0 0 0 1
【+0】原=0 0 0 0 0 0 0 0
【-0】反=1 1 1 1 1 1 1 1
【-0】補=0 0 0 0 0 0 0 0
8位帶符號數的補碼特點:(1)【+0】補=【-0】補=0 0 0 0
0 0 0 0
(2)8位二進制補碼所能表示的數值為+127~-128
(3)一個用補碼表示的二進制數,最高位為符號位。當符號位為"0"(即正數)時,其余七位即為此數的二進制值;當符號位為"1"(即負數)時,其余幾位不是此數的二進制值,把它們按位取反,且在最低位加1,才是它的二進制值。
如:【X】補=1 0 0 1 0 1 0 0 是負數,它的數值為0 0 1 0 1 0 0
按位取反, 得1 1 0 1 0 1 1,然后再加1為1 1 0 1 1 0 0=(108)10
當負數采用補碼表示時,就可以把減法轉換為加法。
例如: 64-10=64+(-10)=64+【-10】補
+64=0 1 0 0 0 0 0 0
10=0 0 0 0 1 0 1 0
【-10】補=1 1 1 1 0 1 1 0
減法運算:
64 0 1 0 0 0 0 0 0
-10 - 0 0 0 0 1 0 1 0-------------- -----
------------------------------------->--------------------------------------------------------------
54 0 0 1 1 0 1 1 0
補碼加法:
64 0 1 0 0 0 0 0 0
+【-10】補 ------> (+) 1 1 1 1 0 1 1 0-------------- -----
------------------------------------->--------------------------------------------------------------
1 0 0 1 1 0 1 1 0
此1自然丟失。在8位字長的單字節運算中
第7位的進位,自然丟失。
例:34-68=34+【-68】補
【34】補=0 0 1 0 0 0 1 0
【+68】補=0 1 0 0 0 1 0 0
【-68】補=1 0 1 1 1 1 0 0
34 0 0 1 0 0 0 1 0
+(-68) + 1 0 1 1 1 1 0 0-------------- -----
------------------------------------->--------------------------------------------------------------
- 34 1 1 0 1 1 1 1 0 符號位為1,肯定結果為負,其數值部
分為0 1 0 0 0 1 0=34
所以結果是-34
在微型機中,凡是帶符號數一律是用補碼表示的,所以,其運算結果也是補碼。當字長為8位時,其范圍為+127~-128。當運算結果超出這個表達范圍時,結果就不正確了,這就稱為溢出。這時要用多字節來表示。
數字之間的互換:
在本節課中,理論上的二、十、十六的轉換方式我就不多論述,有興趣的同學可以去參考下這方面的書籍,在下面我為大家講解一下計算機中科學型計算器的數字轉換方法,在以后的編程中經常會用到的。二進制與十進制、十六進制的轉換有專用的計算器。當你看到我編寫的這份教材時,相信你也有了一臺電腦,這時你可以點擊開始然后點擊程序再點附件這時我們會看到有一個計算器的程序,我們點擊一下計算器,這時一個計算器的操作界面就出來了。如果你看到的是一個跟我們普通計算器一樣的界面,這時你還需要進行一個小小的設定,點擊計算器界面上的查看,這時會下拉一個菜單,即標準型,科學型,我們選擇科學型,這時一個可進行二、十、十六進制運算的計算器就出來了。
學了這么長時間有同學又會說了,東方星老師,你總是跟我們講這些,我們感覺好累的。同志們,我知道你們累,可是東方星老師更累呀,一字一字為你們編寫這份教材,目的就是想你們能從我編寫的這份教材中多學點東東,因為我前面所講的都是至關重要的東西。好吧,既然有同學說累了,那我們就先休息一下,跟東方星老師用計算器先玩一下十六進制與十進制的轉換吧。剛才說到我們已打開了科學型的計算器,這時我們點擊十六進制,然后點擊計算器上的00,這時在計算器的顯示屏上會顯示00。記住:我們剛才輸入的是十六進制,我們怎樣把他轉為十進制呢?這時我們選中十進制,這時顯示屏上顯示什么?還是0吧。哈哈,當然了,0用十六進制、十進制表示都是0啦。好,我們又把計算器設回到十六進制,然后輸入7F,再點擊十進制,這時顯示什么?127,對吧。我們回想一下,我們前面說到的,00~7FH其實用十進制表示,是不是就是0~127,也就是我們所說的低128單元?你們再把80H~FFH轉換一下,結果就不用我說了吧。
常用邏輯電路
在邏輯電路中,輸入和輸出只有兩種狀態,即高電平和低電平。通常以邏輯“1”和“0”表示電平高低。
1、 與門
是一個能夠實現邏輯乘運算的、多端輸入、單端輸出的邏輯電路。
輸入
| 輸出
| A端
| B端
| Y
| 0
| 0
| 0
| 1
| 0
| 0
| 0
| 1
| 0
| 1
| 1
| 1
|
|
|
邏輯解釋: 即如右邊圖所示,當開關A與B當中只有全部閉合(即為高電平1)時,才會有輸出(即燈泡才會亮)所以在與門電路中,只有輸入的全部條件為高電平“1”時輸會有輸出。
語言表達為:“有0出0,全1出1”
2、 或門
是一個能夠實現邏輯加運算的、多端輸入、單端輸出的邏輯電路。
輸入
| 輸出
| A端
| B端
| Y
| 0
| 0
| 1
| 0
| 1
| 0
| 1
| 0
| 0
| 1
| 1
| 0
|
|
|
邏輯解釋:
即如右邊圖所示,當開關A與B當中只要有一個開關閉合(即為高電平1)時,就會有輸出(即燈泡才會亮)所以在或門電路中,只要輸入的為高電平“1”就會有輸出。
語言表達為:“有1出1,全0出0”。
3、 非門
是一個能夠實現邏輯非運算的、單端輸入、單端輸出的邏輯電路。非就是反,就是否定,也就是輸入與輸出的狀態總是相反。
91嫩草黄片动漫版