核心是數的進製及其轉換(在數電裡應該都學的差不多了)以及數在計算機系統裡的儲存。
數字(用來表示數 作為一種符號)和數(有大小 數值意義)
數的值和數的表示(二進位制,十進位制,十六進製制)
不同進製的數的轉化
機器數:乙個數連同它的符號都用二進位制的編碼形式來表示,這種數稱為機器數。
真值:乙個機器數對應的十進位制數值稱為這個機器數的真值
無符號數
計算機中表示乙個數其長度一般是受限且固定的。n位無符號數的範圍:0≤
\leq
≤ x ≤2n
\leq2^n
≤2n算數運算:加減乘除。乘以2相當於左移一位,除以二相當於右移一位。
邏輯運算:與或非。按位運算
有符號數
原碼:最高位為符號位,占用乙個bit。 習慣上0表示正數,1表示負數
n位有符號數原碼的表示範圍是−(2
n−1−
1)∼+
(2n−
1−1)
-(2^-1)\sim+(2^-1)
−(2n−1
−1)∼
+(2n
−1−1
)0 的原碼不唯一既可以是0 0000000也可以是1 0000000
反碼:正數不變。負數符號位不變數值部分按位求反。反碼的表示範圍與原碼相同。0 的反碼仍然不唯一。
補碼:正數不變,負數為反碼+1。表示範圍為−2n
−1∼+
(2n−
1−1)
-2^\sim+(2^-1)
−2n−1∼
+(2n
−1−1
)即最小負數沒有反碼
在補碼體系中,0 的表示變成唯一的,於是可以多表示乙個數−2n
−1
-2^−2
n−1.
特殊數:1000 0000
在原碼中定義為-0,反碼中定義為-127,在補碼中定義為-128
對於無符號數:128
補碼的引進使得加減法統一為加法
[x+y]補=[x]補+[y]補
[x-y]補=[x]補-[y]補=[x]補+[-y]補
同模數:x+k∗2
nk*2^n
k∗2n
模擬鐘錶:某乙個時刻,再過12h或24h或36h指標都指向同乙個地方。
對8位儲存來說,模就是256。用8bit儲存補碼的時候模為256,但原碼反碼不具備這個有點,因為它們的編碼設計中0不唯一,破壞了這一點。
補碼的本質:正的同模數
乙個附屬的二進位制補碼表示本質上是這個負數的乙個正的同模數(無符號二進位制)。比如-128 補碼表示為1000 0000 。-128+256=128 其二進位制(無符號)表示恰為1000 0000。
補碼用於計算的原理
當數字位數有限的時候,超出位數的高位借位和進製無法表示,其實相當於可以隨便向高位借位和進製而不被表示出來。所以負數在加減運算中可以用其同模數也就是補碼參與。
數a+數b=數a+數b的同模數(相當於向高位借位了)mod模(相當於向高位進製)。無論正負數都可以這麼算,於是在補碼中加減被統一成了加法。
絕對值會變大的計算可能產生溢位,同號相減或異號相加,絕對值越算越小,不會溢位。同號相加和異號相減可能產生溢位
判斷:符號位參與運算產生的進製與最高有效為產生的進製不同的時候發生了溢位。
舉例:兩個正數相加符號位進製為0 若最高有效位相加產生了進製則溢位。
若為兩個負數相加,符號位進製必為1,若最高有效位相加無進製則結果表示的是乙個正數,顯然產生了溢位。
n =(
−1)s
m∗rj
n=(-1)^sm*r^j
n=(−1)
sm∗r
jn:s:正負符號
r:基數(=2) j:階碼
m:尾數
ieee規定
單精度(32位):1位階碼符號 7位階碼數值 1位尾數符號 23位尾數數值
例如0.0001010001b=0.1010001b*2^(-3)
[-3]補=2^8-3=253=1 111 1101
浮點數形式:1 1111101 0 10100010000000000000000
(浮點數儲存格式理解即可,具體的儲存規範可檢視
1mb=2
202^
220bit
1gb=2
302^
230bit=1024mb
1tb=2
402^
240bit=1024gb
1 byte =8 bit
1kb=1024 byte
word 表示字長,歷史上有4bit 8bit 32bit 64bit 等多種標準。一般原則上定義為計算機能夠一次性處理的資料長度,與匯流排寬度、cpu內部暫存器寬度等都有關係。一般是字長=cpu資料暫存器寬度=計算機系統匯流排寬度。
windows中 字長一般為2b(16位)dword=4b,qword=8b
嵌入式系統
嵌入式開發的相關領域 搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關 領域包括 a 數字影象壓縮技術 這是嵌入式最重要最熱門的應用領域之一,主要是應掌握mpeg 編譯碼演算法和技術,如 pda 高精電視 機頂盒等都涉及mpeg高速解碼問 題。b 通訊協議及程式設計技術 這...
嵌入式系統
嵌入式系統就是計算機系統的一類,就是被塞進其他裝置的計算機作業系統。我的嵌入式老師只用了三個詞語就總結了嵌入式系統的精髓 專用的可裁剪的 計算機系統。包括嵌入式軟體開發的知識體系和背景 先說背景 計算機,領域內,知識體系,按層次分,可以分為 其中 此處,暫且不討論上層的純軟體,以及底層的硬體,只是簡...
嵌入式系統
硬體結構 軟體結構 作業系統 vxworks商用嵌入式系統的代表 嵌入式linux 採用的是linux的核心,大多數採用的是linux的微核心 微核心本身只提供一些最基本的作業系統功能,如任務排程 記憶體管理 中斷處理等,而類似於檔案系統和網路協議等附加功能則執行在使用者空間中 交叉編譯 交叉編譯 ...