深入理解計算及系統 Chapter2 學習筆記(持續更新)
阿新 • • 發佈:2018-08-31
信息 得到 編碼方式 apt 轉換 數據 print 機器 void :{0, 1}w → { 0, 1,···, 2w-1 }
Chapter2 信息的表示和處理
1.將一個十進制的數字x轉換為n進制,可以用n反復除x,得到商q和一個余數r,然後用這個r作為最低位數字,反復這個過程直到商為0,則可以得到n進制的表示,其原理為:
x = a0nm + a1nm-1 +···+ amn0
2.每臺計算機都有一個字長(word size),指明指針數據的標稱大小。因為虛擬地址是以這樣的一個字來編碼的,所以字長決定的最重要的系統參數就是虛擬地址空間的最大大小。也就是說,對於一個字長為w位的機器,虛擬地址的範圍為0~2w-1
3.小端法:最低有效字節在最前面的方式;大端法:最高有效字節在最前面的方式。如何判斷?
#include <stdio.h> typedef unsignedchar *byte_pointer; void show_bytes(byte_pointer start, size_t len) { size_t i; for(i = 0; i < len; i++) printf(" %.2x", start[i]); printf("\n"); }
4.左移和右移
左移k位:丟棄最高的k位,並在右端補k個0
右移分為邏輯右移和算數右移:
邏輯右移k位:左端補k個0,拋棄最低的k位
算數右移k位:左端補k個最高有效位的值,拋棄最低的k位
5.整數的表示
無符號編碼可以定義為一個映射B2Uw
補碼編碼可以定義為一個映射B2Tw:{0, 1}w → { -2w-1,···, 2w-1-1 }
兩種編碼方式都具有唯一性(雙射)
深入理解計算及系統 Chapter2 學習筆記(持續更新)