1. 程式人生 > >2017-2018-1 20155226《信息安全系統設計基礎》第14周學習總結

2017-2018-1 20155226《信息安全系統設計基礎》第14周學習總結

第二章 信息安全系統 字符數組 mark 運算符號 常見用法 指針 gcc 重要

2017-2018-1 20155226《信息安全系統設計基礎》第14周學習總結

教材學習內容深度學習

第二章 信息的表示和處理
  • 十六進制表示法C表示法以0x或0X開頭的數字常量為十六進制進制轉換常用進制:二進制(B),十進制(D),八進制(O或者Q),十六進制(H)

  • 轉換為二進制-十六進制相互轉換,二進制的四位數字對應十六進制的一位數字。 同理,二進制與八進制的轉化是三位對應一位。 但是通常情況下,進制轉換都以二進制為橋梁進行轉換。

  • 每臺計算機都有一個字長,指明整數和指針數據的標稱大小,因為虛擬地址是以這樣的一個字來編碼的,所以字長決定的最重要的系統參數就是虛擬地址空間的最大大小。

  • 對於一個字長為w位的機器來說,虛擬地址的範圍是0~2^w-1。程序最多訪問2的w次方個字節。

  • 數據大小: 在不同字長的計算機中,相同的數據類型所占用的字節數並不相同,32位和64位的區別見書

  • 使用C99特性時 gcc -std=c99 xxx.c 實驗樓環境為64位,編譯為32位機器碼: gcc -m32 xxx.c

  • 尋址和字節順序以0x01234567舉列來說:
  1. 大端法: 最高有效位在前所以是: 01 23 45 67
  2. 小端法: 最低有效位在前所以是: 67 45 23 01
  • 強制類型轉換用來允許一種數據類型引用一個對象,而這種數據類型與創建這個對象的定義的數據類型不同。最好在定義的時候保持數據形式的統一

  • 表示字符串和代碼: C語言中字符串被編碼為一個null字符結尾的字符數組。每個字符串都由某個標準編碼來表示,最常見的是ASCII字符碼。

位運算

  1. 布爾代數 常用運算符號:與: &或: |非: ~異或:^

  2. 位向量位向量:有固定長度為w、由0和1組成的串。位向量的應用表示有限集合。

  3. 位級運算位運算:位向量按位進行邏輯運算,結果仍是位向量。位級運算的一個常見用法就是實現掩碼運算,這裏掩碼是一個位模式,表示從一個字中選出的為的集合。
  4. C語言中的移位運算: C語言標準並沒有明確定義應該使用那種兩類型的右移。對於無符號數據,右移必須是邏輯的。而對於有符號數據,算術的或者邏輯的右移都可以。

c語言中的移位運算右移

  • 右移分為邏輯右移和算術右移。算術左移和邏輯左移沒有什麽區別。

      邏輯右移: 在左端補k個0,多用於無符號數移位運算

    算術右移: 在左端補k個最高有效位的值,多用於有符號數移位運算。

優先級移位運算的優先級比算術運算(比如+、-)要低整數表示一、整型數據類型

  • 整型數據類型——表示有限範圍的整數,每種類型都能用關鍵字來指定大小,還可以指定是非負數還是負數。這些不同大小的分配的字數會根據機器的字長和編譯器有所不同

無符號數的編碼

  • 無符號數的二進制表示有一個很重要的屬性,就是每個介於0~2的w次方-1之間的數都有唯一一個w位的值編碼。

    C語言支持所有的整型數據類型的有符號和無符號運算

  • 一、無符號運算
    無符號運算本質上就是模運算
  1. 加法 涉及到的相關知識有:阿貝爾群,單位元,加法逆元等等。計算起來很簡單。
  2. 乘法 兩個w位的無符號數相乘,實際上是截取了低w位,但是等價於mod 2的w次冪。

補碼運算

  1. 補碼用法 加法必須確定結果太大或者太小時,應該采取什麽措施 兩個數的w位補碼之和與無符號數之和有完全相同的位級表示。大部分計算機使用同樣的機器指令來執行無符號或者有符號加法。

    教材及課堂學習和總結

  • 問題和解決方法已在測試中列出

課後練習

代碼托管

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:軟件工程軟件的估計為什麽這麽難,軟件工程 估計方法

  • 計劃學習時間:25小時

  • 實際學習時間:20小時

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)

參考資料

  • 《深入理解計算機系統V3》學習指導
  • ...

2017-2018-1 20155226《信息安全系統設計基礎》第14周學習總結