天天看點

資訊安全系統設計基礎 第4周學習筆記

資訊的表示和處理

一、資訊存儲

  ① 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

遇到的問題:

溢出還是有些地方不是很清楚。

不知道阿貝爾群就是交換群,遺忘了交換群的概念以及性質,通過百度重新熟悉了以前的知識。

對運算公式的不熟悉,不知道是否需要記憶,希望今後用熟了就可以記下來。