1. 程式人生 > 其它 >[WIP] 給女朋友講計算機系列 -1- 位元、位元組、數字的二進位制、16進製表示

[WIP] 給女朋友講計算機系列 -1- 位元、位元組、數字的二進位制、16進製表示

宣告:通俗易懂和專業準確的權衡

0 和 1 的世界

計算機只認0和1,所有的資料都由 0 和 1 的組合:數字、字母、漢字、圖片、音樂、電影、遊戲、網頁等都可以由很多的0/1組成。

計算機如何知道一長串的0/1是什麼含義呢?

比如 0100 0001 可能表示數字 65,可能表示大寫字母A,可能和其他更多的0/1共同組成一個漢字,也可能表示圖片的一個點的顏色,其意義完全取決於人們約定的規則

位元和位元組

位元組是計算機的基本單位。人們常說的一個Word 文件 40 KB,一張圖片 4 MB,一首歌 10 MB,一部電影 4 GB,記憶體 8 GB,儲存 512 GB等等。這裡的大“B”就是Bytes,位元組。
位元:寬頻500M 寬頻 實際上的指速度為 500Mbps的寬頻,bps是 bit per seconds,即位元每秒。所以 500M 的寬頻最快下載速度不是500MB/s,而是(500M bit/s)/(8 bit/byte)=62.5 MByte/s。位元,bit,一般用小b表示。

正著說一遍:每一個0/1叫做一個位元(bit),8個位元組成一個位元組(Byte)。通常計算機一次最少處理一個位元組。
反著再說一遍:一個位元組有8個位元;每個位元只能是0或1,8個位元一共可以表示 2^8 = 256 種組合,可以代表256種含義(取決於人們約定的規則)。

二進位制:用0和1表示數字

首先想到用8個位元表示 0-255:人們約定,高位到低位每個bit有不同的權重,如此便可用8個bit表示0-255的所有數字

高位 低位
權重 128 64 32 16 8 4 2 1
舉例:0 0 0 0 0 0 0 0 0
舉例:35 0 0 1 0 0 0 1 1
舉例:65 0 1 0 0 0 0 0 1
舉例:128 1 0 0 0 0 0 0 0
舉例:255 1 1 1 1 1 1 1 1

16進位制:和二進位制沒有任何區別,只是二進位制的更簡單的表示法

用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F表示4個位元 0~15
一般加上字首0x,提醒讀者接下來是16進位制

表示更大的數:用多個位元組表示

表示負數:補碼

表示浮點數:IEEE

表示字元

表示英文字母:ASCII

表示漢字

表示所有的符號

表示其他