2017-2018-1 20155226《信息安全系統設計基礎》第14周學習總結
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舉列來說:
- 大端法: 最高有效位在前所以是: 01 23 45 67
- 小端法: 最低有效位在前所以是: 67 45 23 01
強制類型轉換用來允許一種數據類型引用一個對象,而這種數據類型與創建這個對象的定義的數據類型不同。最好在定義的時候保持數據形式的統一
表示字符串和代碼: C語言中字符串被編碼為一個null字符結尾的字符數組。每個字符串都由某個標準編碼來表示,最常見的是ASCII字符碼。
位運算
布爾代數 常用運算符號:
與: &或: |非: ~異或:^
位向量位向量:有固定長度為w、由0和1組成的串。位向量的應用表示有限集合。
- 位級運算位運算:位向量按位進行邏輯運算,結果仍是位向量。位級運算的一個常見用法就是實現掩碼運算,這裏掩碼是一個位模式,表示從一個字中選出的為的集合。
C語言中的移位運算: C語言標準並沒有明確定義應該使用那種兩類型的右移。對於無符號數據,右移必須是邏輯的。而對於有符號數據,算術的或者邏輯的右移都可以。
c語言中的移位運算右移
右移分為邏輯右移和算術右移。算術左移和邏輯左移沒有什麽區別。
邏輯右移: 在左端補k個0,多用於無符號數移位運算
算術右移: 在左端補k個最高有效位的值,多用於有符號數移位運算。
優先級移位運算的優先級比算術運算(比如+、-)要低整數表示一、整型數據類型
- 整型數據類型——表示有限範圍的整數,每種類型都能用關鍵字來指定大小,還可以指定是非負數還是負數。這些不同大小的分配的字數會根據機器的字長和編譯器有所不同
無符號數的編碼
無符號數的二進制表示有一個很重要的屬性,就是每個介於0~2的w次方-1之間的數都有唯一一個w位的值編碼。
C語言支持所有的整型數據類型的有符號和無符號運算
- 一、無符號運算
無符號運算本質上就是模運算
- 加法 涉及到的相關知識有:阿貝爾群,單位元,加法逆元等等。計算起來很簡單。
- 乘法 兩個w位的無符號數相乘,實際上是截取了低w位,但是等價於mod 2的w次冪。
補碼運算
補碼用法 加法必須確定結果太大或者太小時,應該采取什麽措施 兩個數的w位補碼之和與無符號數之和有完全相同的位級表示。大部分計算機使用同樣的機器指令來執行無符號或者有符號加法。
教材及課堂學習和總結
- 問題和解決方法已在測試中列出
課後練習
代碼托管
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
參考:軟件工程軟件的估計為什麽這麽難,軟件工程 估計方法
計劃學習時間:25小時
實際學習時間:20小時
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)
參考資料
- 《深入理解計算機系統V3》學習指導
- ...
2017-2018-1 20155226《信息安全系統設計基礎》第14周學習總結