- 現在國中小好像很少提,導致沒人會二進位
- 對,剛去輔導完演算法小社的我忽然意識到這件事情,所以就講了
- 學會後能幹嘛?
- 看懂以前看不懂的怪數字
- 和人溝通
- 看 hex 色碼比較輕鬆 可能
最主要是我發現複雜度要講的東西沒那麼多
- 從原始人的想法出發
- 開始掰你的手指頭
- 開始用你的腳指
- 撿幾根地上的樹枝來用吧
- 一定要那麼具體嗎?
- 把它用 畫/寫 的方式記錄下來!
- 是多少就畫幾條線
- :我今天捕了 |||||||||||||||||| 條魚喔
- :真的喔,你倒是說給我聽聽啊
- 要畫的線好像有點多欸
- 我們不如用一個 X 代表 |||||||||| 吧
- 但是...
- 使用新的符號 O 代表 XXXXXXXXXX
- :我今天又捕了 OOOOOOOOOO 條魚
- :你夠了喔
- 每次都發明一個新的符號好煩喔
- 首先,我們分別用 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 代表 |, ||, |||, ||||, |||||, ||||||... (下略)
- 當數字超過 9 時,將它濃縮
- 我們不開新的符號,而是以它的位置表示它被濃縮過幾次
- 10 的 1 代表它被濃縮過 1 次
- 100 的 1 代表它被濃縮過 2 次
- 2000 的 2 代表有 2 個被濃縮過 3 次的 1
- 原始生活結束,你是現代社會公民了
- 十進位的數學應該很熟吧?
- 四位數 abcd = a * 1000 + b * 100 + c * 10 + d * 1
- abc0 = abc * 10
- abcd % 100 = cd
- ...
- 你各位考進建中我相信數學沒一個差的
- 為什麼人類通常使用十進位?
- 其他動物在抗議
- 十不具有像是 0, 1 等數強大的性質
- 難道我們要用 1 進位?
- 這樣有進位和沒進位一樣 = =
- 既然十本身是個很醜的數字,不如使用其他性質更好的
- 既然 1 不行,2 可以嗎?
- 以長度來說,確實簡短了不少
- 只有 1, 0 兩種符號
- 10 進位(誤
- 同時 2 進位還具備一些特別好的性質,讓我們在資訊科學裡喜歡用它
- 一件事通常會有「正」「反」兩面
- 我「有」筆
- 我「沒有」筆
- 我「支持」某候選人
- 我「不支持」某候選人
- 你「應該」做某件事
- 你「不應該」做某件事
- 正、反在敘述的過程中經常扮演關鍵的字眼
- 不如用 1, 0 分別代表正反
- 更重要地,比起測量電流大小之類可能會有誤差,如果用是否有電流代表 1, 0 會精確很多
- 很多東西都用 1, 0 表示會方便很多
- 除非你精通數學物理資訊三科,掌握開發量子電腦的技術並發展出更強大的電腦,否則目前的電腦都是以二進位為基礎
- 2 進位的規則很簡單,超過 2 就進位,和你用10 進位一模一樣
- 舉個例子 1 + 1 = 10 (Binary)
- 之前我們在十進位我們叫每個數字的單位是「位」,到二進位我們有時稱它「位元」
- 為了區分十進位 / 二進位的數字,我們經常在二進位前面加上 0b
- 觀察到一些十進位的性質換到二進位上
- 0b110101 = 0b100000 + 0b10000 + 0b100 + 0b1
- 0b1010 = 0b101 * 0b10
- 0b10101 % 0b10 = 0b1
- 所以,當我們處理二進位的數時,對每個位元分開來做會比較好做
- 乘以某個 2 的 x 次方相當於左移 x 位
- 取 2 的 x 次方的餘數相當於取後面幾個位元
- 剛剛提到 1, 0 也可以代表是或否 (布林值)
- 我們定義在邏輯上的一些運算方法:
- 比較特別的還有 not 運算子,會把 1 變成 0,0 變成 1
- 上面三個分別代表 4 & 6 = 4, 4 | 6 = 6, 4 ^ 6 = 2
- 剛剛介紹完位元運算,接著要來講實際使用的部分
- 首先是位元遮罩
- 當想要對其中幾個位元做操作時使用
- 取 0b1000 的餘數:& 0b1111
- 移動:乘除法,或單純想要移動位元時用
- 0b1 << 1 = 0b10 ,相當於 * 2
- 0b11 >> 1 = 0b1,相當於 / 2 後向下取整
- 搭配在一起
- 因為二進位的數通常比較長,我們希望能縮寫
- 因此十六進位出現了
- A, B, C, D, E, F 分別代表 10, 11, 12, 13, 14, 15
- 常見的色碼 0x3a10fc 等就是十六進位
- 怎麼縮寫?
- 每四個位元縮寫成一個數字
- 0110 1001 1110 1100
- 6 9 E C
- 縮寫的方式
- 原本每位是 0b10000, 0b1000, 0b100, 0b10, 0b1
- 現在每位是 0b1 0000 0000, 0b1 0000, 0b1
- 很自然地就縮起來了
- 同樣的道理可套用在 8 進位上
Made with Slides.com