創作內容

68 GP

什麼是布林代數?邏輯閘又是啥?

作者:解凍豬腳│2014-07-15 02:48:23│巴幣:162│人氣:15476

安安,

又到了好久不見的資訊時間

前一陣子在各大網站研究了一下RC4加密

因此決定在這裡稍微介紹微觀之下的電腦運作原理。



看到標題可能大家會覺得,這些專有名詞聽起來像是很變態、很困難的東西,

但其實它們決定了在電腦裡面最基本的運作概念唷

我想,即使是沒有接觸過相關科系的人,應該多少都有聽過,

電腦裡面就是一堆 1 和 0 相互交疊才能運作~



(……1 和 0 相互交疊



廢話不多說,我們先來介紹所謂的 1 跟 0 。

其實在電腦的零件裡面,因為它只是一堆電路集結成的東西,

所以電腦不懂什麼叫做「123」,更看不懂什麼叫做「ABC」,

在電路板的眼中,只有「高電壓」與「低電壓」的差別——

因此,那些發明電腦的人就在想了,如何用這高低電壓來表示東西呢?



假設今天電路板某處的電壓高低的順序是是「高低低高高高低高」

你可能會想說:「What the fuck?」

看似沒用,但它是可以用來表示東西的哦

像這個順序我們就可以一個一個對應下來,

翻成:10011101——這串1和0又可以代表什麼?

面對這個問題,那群開發電腦的科學家就提出了「二進位」的概念

譬如一般來說,我們在數東西是這樣的:


10

因為最左邊那一位數滿第十個的時候就會多一位,所以我們叫作「十進位」


那二進位呢?

既然是二進位,當然就只能用0和1來表示數字了,滿兩個就進一個位:

1011100101

110111100010011010

對應到後面就可以知道,這個10011101轉換成十進位

就是我們平常人用的數字系統的「157」
(註:避免文章失焦,不贅述十進位與二進位的轉換)

所以在電腦裡面表示數字的方法就這麼誕生了




光是表示數字有用嗎?當然沒有用呀!

電腦有太多太多的事情要做,就拿最簡單的來說,譬如:

1. 電腦要隨時檢查你是不是按了 Alt 鍵

我們單單講這個情況好了,

「按了 Alt 鍵」、「沒按 Alt 鍵」這兩個不同的狀態要如何表示呢?

聰明的科學家利用了只有 0 和 1 的特性,弄成這兩個情況:

按  → 把 1 存到記憶體裡面

沒按 → 把 0 存到記憶體裡面

像這樣用 1 和 0 表示的概念,我們叫做「布林代數」,

這個 1(有、成立) 我們在布林代數裡面稱作「True(真)」

反過來說, 0 (沒有、不成立)我們在布林代數裡面稱作「False(假)」

我們就成功做到判斷「對與錯」的目的了。

-

但它還是很忙。假設有三個情況:

1. 電腦要隨時檢查你是不是按了 Alt 鍵

2. 電腦要隨時檢查你是不是按了 F4 鍵

3. 電腦要隨時檢查你是不是同時按了 Alt 和 F4 這兩顆鍵

若我們今天要的是上述的第三種情況,又該怎麼辦?



我告訴你,科學家還是很聰明的。

所以他們又做了一個東西叫做「邏輯閘」來判斷這些情況。



一般來說,邏輯閘被分為七種,

分別叫做 NOTORANDNANDNORXORXNOR

就拿其中一個最簡單的 AND 來說好了,這個閘一次接收兩個信號,
(註:這個AND跟英文的and是一樣的意思,就是「而且」,兩個東西都成立的時候就OK)

如果今天收到的其中一個是 1 、另外一個是 0,那它最後就輸出 0

(因為這樣表示「沒有兩個條件一起達成」,所以不成立)



那如果兩個都是1的情況下,就輸出1:
(因為這就是"A達成且B達成",所以成立)





順帶一提,習慣上常常表示:
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

像這樣會有不同的輸出結果,就是"AND"邏輯閘的運作。

如果有認真看文章,

這裡可能會有人問,「為什麼 0 AND 0 不會是 1 呢?兩個不是都一樣嗎?」

其實要解釋它是很簡單的,但這裡就必須先問你:

「你的身高超過970公分 而且 你的體重超過800公斤」成立嗎?

我們一個一個看下去吧:

「你的身高超過970公分」是錯的。

「你的體重超過800公斤」是錯的。

如果是這樣,

難道「你的身高超過970公分 而且 你的體重超過800公斤」就會是對的嗎?

那我想你應該明白了。



除此之外,邏輯閘最常應用在程式設計上,

我們常常會看到一段程式碼裡面寫著:

if ( A AND B ) { XXXXX; }

它在電腦裡面執行上面所謂「XXXXX」的先決條件,

就是括號裡面的東西要「成立」(也就是上面寫的 A AND B 要輸出 True )

像這種情況也可以用我們所謂的邏輯閘來解釋,

於是程式的語法就變得更接近人類語言了。

如此一來,

邏輯閘就在這種場合大大發揮了它的功能——讓電腦用人類的邏輯去判斷正確或錯誤。

後來隨著不斷進步及發展,眾人透過他們的智慧,

把這七個邏輯閘用不同的方式組合起來,發揮了更多強大的功能。



附錄——不同邏輯閘的運作方式:

NOT 1 = 0
NOT 0 = 1

0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1

0 NOR 0 = 1
0 NOR 1 = 0
1 NOR 0 = 0
1 NOR 1 = 0
註:A NOR B = NOT ( A OR B )

0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

0 NAND 0 = 1
0 NAND 1 = 1
1 NAND 0 = 1
1 NAND 1 = 0
註:A NAND B = NOT ( A AND B )

0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

0 XNOR 0 = 1
0 XNOR 1 = 0
1 XNOR 0 = 0
1 XNOR 1 = 1
註:A XNOR B = NOT ( A XOR B )



上面的附錄可以不必看,因為那些是比較深入的(當然如果能看得懂是更好)

它們在不同領域有不同的用途;希望這樣一來,大家對於邏輯閘與布林代數有初步的了解。



 
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=2512826
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 46 篇留言

2B王
雖然很詳細 但是還是聽不懂 於是就乖乖給GP

07-15 03:19

解凍豬腳
啊……我有寫得這麼難嗎[e17]07-15 14:25
lvsqq
ㄇㄉ
0101用那張圖幹嘛

07-15 03:28

解凍豬腳
舒服齁[e16]07-15 14:25
          
數位邏輯比電子學友善多了

07-15 04:53

解凍豬腳
超級友善
不費腦力[e7]07-15 14:25
恥球
拜託不要跟窩縮這ㄍ 我數位邏輯被當兩次

07-15 06:26

解凍豬腳
哭 加油好ㄇ07-15 14:25
丁丁是人才
我毫無數學邏輯

07-15 07:05

解凍豬腳
還蠻實用的東西,加油啊[e39]07-15 14:26
清流
看完了 覺得滿有趣的ㄏㄏ

07-15 08:11

解凍豬腳
ㄏㄏ 我看是上面的gif有趣吧[e16]07-15 14:26
魚夢
直接拉下來再說啦

07-15 08:22

解凍豬腳
這樣我很難過[e36]07-15 14:31
角卷肯德狗
數位邏輯根本簡單....

07-15 08:36

解凍豬腳
讚[e19]07-15 14:32
C.Y.L
感恩! 二年級專業要上數位邏輯[e16][e16]
大概理解他在幹嘛了

07-15 09:00

解凍豬腳
加油[e2]07-15 14:32
浪人哈特利
這個我讀了快三年的資訊科

我還是不懂

07-15 09:22

解凍豬腳
[e33]07-15 14:32
賣肝with入野
這三小

07-15 10:01

解凍豬腳
學程式的人大多都會懂的
有關電腦怎麼運作07-15 14:32
皮卡丘後空翻
豬腳科普

07-15 10:18

解凍豬腳
改天來出個豬腳科普雜誌[e16]07-15 14:32
人妻
沒想到你也有涉獵密碼學阿,自從之前美國監聽全世界的事情暴發之後我稍微學了一些加密的技巧,目前還在學RSA加密及質因數分解。原本以為費斯妥的魔王密碼已經很難破解了,沒想到還有更難的。

07-15 10:51

解凍豬腳
覺得密碼學很好玩
尤其是加密算法可以讓資料做可逆的加密07-15 14:34
★羽戀★
數位邏輯 哈哈 我們的專業科目呢..

07-15 11:44

解凍豬腳
希望有幫助[e5]07-15 14:35
死人一個
感動
豬腳好久沒發這種文了[e13]

07-15 12:42

解凍豬腳
突然想到[e5]
最近比較少碰程式07-15 14:35
阿賢不是東方廚
完全看不懂 GP按爽的

07-15 12:48

解凍豬腳
[e17]07-15 14:35
飛天吉娃娃
快點按推,免得別人以為我看不懂。

07-15 12:48

解凍豬腳
不會啦 只要耐心看就看得懂[e35]07-15 14:35
bbooyy71
跨謀 所以金鑰加密有解了沒?

07-15 13:17

解凍豬腳
你是說RC4嗎
後來總算是有看懂07-15 14:35
.50 BMG
簡易有彈性卻加大了運算跟儲存的需求

07-15 13:45

解凍豬腳
它確實是神奇的東西[e19]07-15 14:36
          
數位唯一ㄎㄅ的就是有些IC編號和功能要記

07-15 14:33

解凍豬腳
是啊……所以多少還是要記些東西07-15 14:36
清流
對啊
都誤解我啊

07-15 15:16

解凍豬腳
https://truth.bahamut.com.tw/s01/201407/a1f5cd481e966b95c83fe9a5282d51a3.GIF07-15 15:20
★羽戀★
那時段考50題全考進位的換算

差點寫不完

平常10進位用習慣了

突然跑出2"4"8"16 腦袋真的會打結

07-15 15:30

解凍豬腳
像你這種情況
進位的換算最好就完全學起來
寫題目會比較快07-15 15:33
★羽戀★
現在開學後就要真正進入數位邏輯的世界了

這些只是試水溫

嗚嗚,感覺好難

07-15 15:52

解凍豬腳
加油吧,萬事起頭難07-15 16:25

以前資訊科的路過。這應該是數位邏輯ㄅ

07-15 16:30

解凍豬腳
對ㄉ07-15 16:32
RINN
最喜歡1和0相互交疊惹ლ(•̀ _ •́ ლ)

07-15 16:49

解凍豬腳
摸摸[e16]07-15 17:04
雪之王女‧F‧巧可奈
儘管現實生活中幾乎用不到,能增進這方面的知識倒也獲益良多

07-15 17:28

解凍豬腳
[e19]07-15 17:47
williey225
之前英文課教到inclusive這個單字,害我有段時間在數邏唸XOR的時候都唸錯了[e5]

07-15 18:18

解凍豬腳
[e5]07-15 18:47
依森
阿部之後我就看不懂ㄌ

07-15 22:00

解凍豬腳
那就看阿部ㄅ[e16]07-15 23:30
霧島悠樹
不錯~
很有深度的文章~
不過..想問問XOR 是甚麼意思?

你對程式這方面也有研究喔

07-15 23:16

解凍豬腳
XOR運算的運作是:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
數學家發現他有一個特性:
假設有N個二進位的數
若"同一位"全部加起來是奇數,XOR出來就是1;反之則0
譬如:
A=10000001
B=01100011
A XOR B 的結果就是11100010
-
如果一次很多個數依序作XOR,假設:
A=11001101
B=11110011
C=11010001
D=10001100
E=11010011
那麼,A XOR B XOR C XOR D XOR E 的結果會是:
10110000
(ABCDE哪兩個先做XOR並不會影響結果)
-
另外一個特性就是
若 A XOR B 得到 C
則 C XOR B 會得到 A
換個角度想
假設 A是原文、B是密碼、C是密文的話
今天對 C 作 XOR B 的運算會得到 A
也就是說這個 B 像密碼一樣 會把 A 轉換成一個新的數
這個得出來的數如果對 B 作 XOR 又會得到原先的數
這就是我們常常講的"對稱式加密"的原理
A式資料 B是密碼 C是加密過後的資料07-15 23:39
叛逆曹長 il capitano
這程式語言?

07-15 23:18

解凍豬腳
不能這麼說,它是一個概念
被廣泛應用在程式語言上,甚至能說是程式語言的基礎之一07-15 23:40
上海
這個我竟然有學過
電子堂時...

07-15 23:21

解凍豬腳
那代表你上課有認真聽[e5]07-15 23:40
生不如死兔兔砲
這個我差點被當過 不過目前是看得懂了(資工路過

07-16 01:13

解凍豬腳
看懂就好[e35]07-16 01:19
小大便
您好, 我看不太懂1NAND0為什麼=1…

07-16 12:29

解凍豬腳
你在您好什麼啦!
https://truth.bahamut.com.tw/s01/201310/f7847ae10ee836bc330e7d182db5919a.JPG?w=30007-16 14:16
爪孟爪
雖然看不太懂,但好像很厲害的樣子

07-16 13:28

解凍豬腳
沒有很膩害[e16]07-16 14:16
小大便
呃 我知道了‘ 謝謝ㄛㄏㄏ

07-16 13:31

一不留 神犬
我草

07-16 22:35

解凍豬腳
[e17]07-16 22:41
喔~?是嗎
不只在電腦裡
基本上各個數位電路都能看到這鬼

07-18 17:58

解凍豬腳
是呀
像這樣的東西弄通了其實很好懂[e12]08-01 14:19
☆鳶一折紙★
電腦這個玩意可真是神奇[e32]

07-18 20:33

解凍豬腳
我一直覺得發明電腦的人更神奇[e17]08-01 14:19
シッコク
看不懂這篇的人數超乎我的想像

07-19 01:31

解凍豬腳
因為符號的關係吧
其實只要專心看就看得懂08-01 14:20
藍貓
數位邏輯的觀念其實沒那麼難,主要是設計電路的時後,由於要把電路設計得精簡,必需把布林代數表式的運算式算到最精簡,這個就需要一點數學概念了,再來除了弄懂邏輯閘,在設計電路的時後有的時後還要算電阻,因為有些零件的啟動需要一定的電壓量。

07-20 16:43

解凍豬腳
電學...N年沒碰的東西了[e42]08-01 14:20
glitchDumb
輕鬆又好玩的數位邏輯w

07-24 21:51

解凍豬腳
又實用[e16]08-01 14:20
翎翊
社長大大拯救眾生QwQ

12-20 13:06

解凍豬腳
早安[e16]12-20 13:17
貓咪好可愛
啊啊啊啊啊啊啊啊啊啊 , 學霸受我一拜

05-19 14:03

( ˘•ω•˘ )
喔喔喔喔喔喔喔喔喔喔喔喔
土鳳梨酥

豬腳比老師還會欸

09-03 13:35

哈哈傻瓜
我數位邏輯死當

09-28 15:32

第二個阿修囉
好像看得懂又好像看不懂

07-09 18:00

我要留言提醒:您尚未登入,請先登入再留言

68喜歡★johnny860726 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:一張白紙... 後一篇:賣菊花的豬腳...

追蹤私訊切換新版閱覽

作品資料夾

------------------ (0)

豬腳生活 (1)
日常雜談、巴哈大小事 (193)
煞氣a國中生 (7)
高中生活日誌 (55)
大學生活日誌 (34)
冬令營回憶錄 (19)
也許藏有一些小祕密吧? (3)
各式各樣的開箱文 (11)
貓科動物時間 (15)

------------------ (0)

繪圖創作 (1)
電繪插圖、草稿 (199)
短篇漫畫、單幅標語 (61)
上課太無聊的手繪塗鴉 (8)
不知道該怎麼分類的綜合作品 (18)

文字創作 (1)
草莓兵的國軍紀實 (14)
我與らい的點點滴滴 (12)
那些榮耀的時刻與心跳加速的瞬間 (60)
有感而發的隨筆之作、無法分類的短文 (17)

------------------ (0)

語言學習 (1)
日語:天気がいいから (5)
粵語:唔好再淨係識講粗口喇 (6)
英語:Hey, you! (1)

程式設計及電腦網路 (1)
系列文:跟著豬腳 C 起來 (10)
系列文:論壇網站運作原理 (3)
Go(Golang) (11)
Ruby / RGSS (7)
Visual Basic (13)
JavaScript (1)
各種原理 (17)

思想:多思考一下,世界會更不一樣 (1)
網路經驗、社會觀察 (23)
檸檬庫 (21)

數學:我來拯救你的期中考了 (1)
各類基礎觀念 (5)
國中生也能懂的微積分 (9)
微分方程 (0)

小說:用筆鋒劃出新世界的入口 (1)

繪圖:我也想畫出私巴拉西的美圖 (10)

------------------ (0)

施工中 (22)

不堪回首的痕跡、雜物堆放 (31)

------------------ (0)

未分類 (1)

ms0489223每天換一首的人
Theater of Life · 鈴木このみ看更多我要大聲說8小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】