資訊的表示和處理
一、資訊存儲
① 3種數字的表示:無符号編碼、補碼編碼、浮點數編碼。
② 二進制、八進制、十六進制轉化
③ 字:字長為w位,虛拟位址範圍為0~2^w-1,程式最多通路2^w個位元組。
資料大小:(short、long)int、char、long long、float、double
④ 尋址和位元組順序:
小端法:最低有效位元組在最前面的方式(大多數Intel相容機)
大端法:最高有效位元組在最前面的方式(大多數IBM和Sun Microsystems)
雙端法:可以設定其中一種。
⑤ 字元串(ASCII碼)
⑥ 布爾代數:與 &、或 |、非 ~、異或 ^
位級運算
⑦ 邏輯運算:&&和||(非零為TRUE,0為FALSE)
⑧ 移位運算:<<、>>
java:<<、>>、<<<、>>>
二、整數表示
① char、short、int、long
取值範圍:
典型取值範圍中,取值範圍不對稱——負數的範圍比整數的範圍大1。
c語言标準定義的每種資料類型必須能夠表示的最小的取值範圍中,正數和負數的取值範圍是對稱的。
② 無符号數、有符号數的補碼編碼
③ 截斷數字:對于無符号數來說,就相當于 mod 2的k次幂,而對于有符号數來說,先按照無符号數截斷,然後再轉化為有符号數。
三、整數運算
整數運算較為精确,但進行有符号數運算時容易溢出,導緻計算值出現錯誤。
整數加法: 形成交換群(阿貝爾群…)、模運算
容易溢出,但滿足結合律、交換律、配置設定律,可以進行優化計算
四、浮點數
浮點數運算不會溢出,但是計算的結果是一個大緻的範圍,并不十分精确,不同的計算過程會有不同的計算值。
① 二進制小數:權值2^(-w)(w為小數點右邊第幾位)
② IEEE浮點表示:符号、尾數、階碼
規格化的值、非規格化的值、特殊值
③ 浮點運算:加法:不具有結合律,滿足單調性
④ c語言的浮點數:float、double
遇到的問題:
溢出還是有些地方不是很清楚。
不知道阿貝爾群就是交換群,遺忘了交換群的概念以及性質,通過百度重新熟悉了以前的知識。
對運算公式的不熟悉,不知道是否需要記憶,希望今後用熟了就可以記下來。