計算機通識
信息編碼
進制轉換
進制轉換在很多地方都能用到,從高中的數學到現在的實際開發中,實際開發中的多媒體數據采集、分割、壓縮、編解轉碼、傳輸、糾錯、合並等工作都與它息息相關。
進制定義
- 二進制:是指在數學和數字電路中以 2 為基數的記數系統,二進制只有 0 和 1 兩個數 字符號,其運算規律是逢 2 進 1,例如 101101。為了與其他進制區別,二進制數的后綴都 用大寫字母 B,例如 101101B;
- 八進制:一種以 8 為基數的計數法,采用 0,1,2,3,4,5,6,7 這八個數字符號, 其運算規律是逢 8 進 1,例如 77。為了與其他進制區別,八進制數的后綴都用大寫字母 O (不是數字 0),例如 77O;
- 十進制:一種以 10 為基數的計數法,采用 0,1,2,3,4,5,6,7,8,9 這十個 數字符號,其運算規律是逢 10 進 1,例如 88。為了與其他進制區別,十進制數的后綴都 用大寫字母 D,例如 88D;
- 十六進制:一種以 16 為基數的計數法,采用 0,1,2,3,4,5,6,7,8,9,A, B,C,D,E,F 這十六個數字和字母符號,其運算規律是逢 16 進 1,例如 9527。為了 與其他進制區別,十六進制數的后綴都用大寫字母 H,例如 9527H;
進制間轉換
二進制轉其他進制
-
二進制轉十進制:采用位置計數法,其位權是以 2 為底的冪,順序從右到左,從 0 開 始計數。例如二進制數 1011B = 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 11D
-
二進制轉八進制:采用三合一,即從二進制的小數點為分界點,向左(或向右)每三 位對應八進制的一位,不足三位的前面補 0,例如:10110011B = (0)10 110 011 = 263O;
-
二進制轉十六進制:采用四合一法,即從二進制的小數點為分界點,向左(或向右)每 四位對應十六進制的一位,不足四位的前面補 0,例如:10110011B = 1011 0011 = B3H;
十進制轉其他進制
十進制轉二進制:整數采用“除 2 倒取余”,小數采用“乘 2 取整”;
十進制轉八進制十六進制和二進制一樣;
信息單位
單位分類
- 存儲單位:存儲在計算機硬盤或內存中的信息容量標准,最小計量單位是“位”(bit, 比特),一個比特位表示一個二進制的 0 或 1 在計算機中所占用的存儲空間;
- 傳輸單位:在計算機網絡中稱為帶寬,寬帶傳輸速率的單位為 bps,bps 是 bit per second 的縮寫,表示每秒鍾傳輸多少比特位信息(很多人都會把這里的 bit 誤以為是 Byte, 也就是錯把位當成字節),例如:帶寬的單位是 10Mb/s,這里其實指的是每秒傳輸 10 兆 位,而不是 10 兆字節數據,因此將位數需要除以 8 換算成字節數,也就是每秒傳輸 1.25 兆字節,即 10Mbit/s = 1.25MByte/s(重點)
換算公式
1 字節(Byte)= 8 位(bit)
1KB(Kilo Byte,千字節)= 1024B(Byte)
1MB(Mega Byte,兆字節)= 1024KB
1GB(Giga Byte,吉字節)= 1024MB
1TB(Tera Byte,太字節)= 1024GB
1PB(Peta Byte,拍字節)= 1024TB
1EB(Exa Byte,艾字節)= 1024PB
1ZB(Zeta Byte,澤字節)= 1024EB
1YB(Yotta Byte,堯字節)= 1024ZB
1BB(Bronto Byte,珀字節)= 1024YB
1NB(Nona Byte,諾字節)= 1024BB
1DB(Dogga Byte,刀字節)= 1024NB
奇偶校驗
根據傳輸的二進制數據和奇偶校驗位中“1”的個數進行校驗。如果連同校驗位中“1” 的個數是奇數,就是奇校驗;反之,就是偶校驗
多媒體基礎參數
所謂多媒體(Multimedia)指的是多種媒體的綜合,一般包括圖像、聲音和視頻等形 式或者它們的組合。可以通過基礎參數來衡量多媒體文件質量的好壞;
參數定義
- 比特率:音視頻、圖像都可以采用這個指標,它指的是規定時間內傳輸的比特數,單位 是 bps(bit per second),比特率越高,數據傳輸的速度就越快,流媒體的播放質量就越 好(音視頻越清晰),所需帶寬也越大,比特率有時候也和碼率混為一談,但碼率的單位一 般是 kbps(千位每秒);
- 視頻碼率:是指一個視頻流在單位時間內傳輸的數據量,也叫碼流率。碼率越大,說明 單位時間內采樣率越大,這樣表現出來的的效果就是:視頻畫面更清晰畫質更高;
- 音頻碼率:和視頻碼率類似,是指一個音頻流在單位時間內傳輸的數據量;
- 采樣率:專用於音頻多媒體,也稱為采樣速度或者采樣頻率,它定義了每秒從連續信號 中提取並組成離散信號的采樣個數,單位為赫茲(Hz)。采樣率的意義在於將模擬信號轉 換成數字信號時,單位時間內采樣多少個數據點,常用的采樣率為 44.1KHz,表示 1 秒鍾 內的采樣數據點是 44100 個;
- 采樣位深:也被稱為采樣精度,單位為 Bit,常見的位深有 16Bit 和 24Bit,它其實就 是每個采樣樣本中信息的比特數;
計算公式
- 視頻碼率計算公式(kbps,千比特每秒) = 文件大小(Kilo Byte,千字節)× 8 / 秒 數(注意:這里的文件大小單位是 千字節 而非 千比特 ,所以需要將文件大小乘以 8,因 為 1 Byte = 8 Bit)
- 音頻碼率計算公式(KBPS,千位每秒) = 采樣率 × 采樣位深 × 通道數
數據結構常識
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。數據結構反映數據的內部構成,即數據由那部分構成
常見數據結構
數組(Array):它是將具有相同類型的若干數據組織在一起的集合,這是一種最基本 而且也是一種最經常使用的數據結構;
棧(Stack):一種特殊的線性表,只能在一個表的固定端進行數據節點的插入和刪除 操作,棧正是一種按照后進先出(LIFO)的原則來存儲數據的數據結構;
隊列(Queue):和棧類似,但不同的是,它是在一端執行入隊操作,而在另一端進行出隊操作 ;
鏈表(Linked List):它和數組一樣,也是一組數據的集合,但和數組不一樣的是, 它並不是一組連續的數據集合,而是通過指針連接在一起的;
樹(Tree):這是一種典型的非線性結構,之所以叫做“樹”,是因為它的結構看起 來就像一顆倒過來的樹,它只有一個根結點,但可以有多個后繼節點;
堆(Heap):它是一種特殊的樹型結構,它的特點是根結點的值是所有節點中最大或 者最小的,而且根結點的子節點也是一個堆結構;
最小堆
最大堆
圖(Graph):這也是一種非線性數據結構,在圖結構中,數據節點稱為頂點,頂點之間的連線稱為邊;
有向圖
無向圖
散列表(Hash):這種數據結構來源於散列函數,它的思想是如果存在 x,那么就必 然有一個唯一的存儲位置 f(x)可以找到 x,這樣通過數學函數就直接計算出 x 的存儲位置而 不用在進行比較、查找以后才知道;
算法常識
算法(Algorithm)是對方案的一種描述,對於計算機來說,它是一系列解決問題的計 算步驟。算法的意義在於,在各種不同的解決方法之中,找到那個效率最高的;
常見算法
- 二分查找:又叫折半查找,它要求列表必須是有序的。它的原理是每次都把待比較元素 A 和列表中間的元素 B 進行比較,如果 A 小於 B,那么 A 再和位於 B 前半部分的元素進行 比較,並且再次選擇中間元素進行比較,直到比較完所有元素為止;
- 冒泡排序:它重復地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就 把它們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經 排序完成。這個算法的名字由來是因為越小(大)的元素會經由交換慢慢“浮”到數列的頂 端
👉[算法動態演示](Brute Force - Bubble Sort (algorithm-visualizer.org))