日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

20145240 《信息安全系统设计基础》第三周学习总结

發布時間:2024/1/17 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20145240 《信息安全系统设计基础》第三周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

20145240 《信息安全系統設計基礎》第三周學習總結

教材學習內容總結

p20

三種數字:

  • 無符號數:基于傳統二進制表示法,表示大于或者等于零的數字。

  • 補碼:表示有符號整數的最常見方式。

  • 浮點數:表示實數的科學計數法的以二為基數的版本。

為什么會產生漏洞?

  • 計算機運算的漏洞多由于計算機算數運算的微秒細節引發的。

p22

進制轉化:

  • x=2^n轉化為十六進制

將x寫成x=2^n的形式,令n=i+4j,x的十六進制表示為:開頭為2^i的值,后面補j個0。

  • 十進制轉化為十六進制

十進制數x反復除以16,得十六進制數

  • 十六進制轉化為十進制

十六進制數x反復乘以16,得十進制數

p25

  • gcc -m32 可以在64位機上(比如實驗樓的環境)生成32位的代碼

p26

字和字節順序:

  • 字長:一個字長指明整數和指針數據的標稱大小。字長決定最重要的系統參數就是虛擬地址空間的最大大小。對一個字長為w位的機器而言,虛擬地址的范圍是0~2^w-1,程序最多訪問2^w個字節。

對于跨越多字節的程序對象需建立兩個規則:

  • 小端法:高對高,低對低

  • 大端法:從視覺上,是這次閱讀的順序,與小端法相反。 使字節順序變得可見的三種方式: 不同類型的機器之間通過網絡傳送二進制數據時,網絡應用程序的代碼編寫必須遵守已建立的關于字節順序的規則;使用反匯編器,處理整數數據的字節序列的存儲字節順序問題;當編寫規避正常的類型系統的程序時。

p28

p32

  • 位向量的運算:按位運算

  • 位向量的應用:表示有限集合

    掩碼表示的是設置為有效信號的集合。
  • 位級運算

    |:或 &:與 ~:取反 ^:異或
  • 邏輯運算

    邏輯運算符:||(或)、&&(與)、!(非) 邏輯運算認為所有非零的參數都表示TRUE,參數0表示FALSE。返回1或者0,分別表示結果為TRUE或FALSE。

邏輯運算和位級運算的區別是:

按位運算只有在特殊情況下,即參數被限制為0或者1時,才能與其對應的邏輯運算有相同的行為; 若第一個參數求值就能確定表達式的結果,那么邏輯運算符就不會對第二個參數求值。
  • 移位運算

    左移k位:丟棄最高位的k位,右端補k個0 右移包括:邏輯右移、算數右移 邏輯右移:左端補k個0(常用于無符號數) 算數右移:左端補k個最高有效位的值(用于有符號數)

p33

  • 掩碼是位運算的重要應用,對特定位可以置一,可以清零。

p38

  • 要用C99中的“long long”類型,編譯時要用gcc -std=c99

p39

補碼形式是最常見的有符號數的計算機表示方式:

將字的最高有效位解釋為負權 B2T(W)函數為:B2T(x) = -x(w-1)2^(w-1)+∑xi2^i(求和從i=0到i=w-2)

p44

有符號數和無符號數之間的轉換:

  • 處理同樣字長的有符號數和無符號數之間相互轉換的一般規則:

數值可能會改變,但是位模式不變。

  • c語言允許無符號數和有符號數之間的轉換。轉換的原則是底層的位表示不變。

  • 當從無符號數轉換為有符號數是,效果是應用函數U2T,從有符號數轉化為無符號數時,應用函數T2U,其中w表示數據類型的位數。

  • 負數和正數相等的情況:u=2147483648 =-2147483648
    (當輸出分別為無符號形式和有符號形式時)

p48

怎么樣讓負數等于正數?

  • 在負數x后加上U,可以使其轉換為(2^w+x)

p49

擴展數的位表示:

  • 零擴展:將無符號數轉換為更大的數在表示的開頭添加0

  • 符號擴展:將一個補碼數字轉換為一個更大的數據類型

p52

深入思考一下代碼和結果:

length=0時會出現存儲器錯誤,這是因為參數length是無符號的,計算0-1將進行無符號運算,等價于模數加法,結果得到UMax。因為任何數都是小于等于UMax的,所以<=比較總是為真,代碼將訪問數組a的非法元素。

解決辦法:

1.將length聲明為int類型 2.將for循環測試條件改為i>length

p67

整數運算

  • 無符號加法

    無符號運算可以被視為一種模運算形式,無符號加法等同于計算和摸上2^w,可以通過簡單的丟棄x+y的w+1位表示的最高位,來計算這個數值。 一個算數運算的溢出,是指完整的整數結果不能放到數據類型的字長限制中去。
  • 補碼加法

    兩個數的w位補碼之和與無符號之和有完全相同的位級表示。大多數計算機用相同的機器指令來執行無符號或者有符號加法。
  • 補碼的非

對于范圍-2^(w-1)≤x<-2^(w-1)內的x,補碼的非運算如下:

x=-2^(w-1):補碼的非為-2^(w-1)x>-2^(w-1):補碼的非為-x
  • 求位級補碼非的方法:

    對每一位求補,再對結果加1 建立在將位向量分為兩部分的基礎之上的
  • 無符號乘法

    兩個數x、y相乘且x、y的位數為w,則結果的位數為2w。
  • 補碼乘法

    同無符號乘法。 若為截斷后的結果,則取結果的后w位作為計算結果。注意:無符號運算和補碼運算在“+”、“-”、“*”在位級上有相同的結果。
  • 關于整數運算的最后思考

    計算機執行的“整數”運算實際上是一種模運算形式;表示數字的有限字長限制來了可能的值的取值范圍,運算結果可能溢出;補碼表示提供了一種即能表示負數也能表示正數的靈活方法,同時使用了與執行無符號算術相同的位級實現; c語言中的unsigned數據類型的使用也應當特別注意,比如,在書寫整數常數和調用庫函數的時候。

p67

浮點數:

  • 二進制小數

將十進制小數轉換為二進制小數 :

首先,將十進制小數寫成分數的形式,將分數的分子部分,寫成二進制的形式;將分數的分母部分寫成2^n的形式,將分子的二進制形式,從右往左數,數n位添加小數點。

小數點左移:除以2 小數點右移:乘以2
  • IEEE浮點數表示

表示形式為:V = (-1)^s * M * 2^E

符號:s決定這個數是負數(s = 1)還是正數(s = 0),而對于數值0的符號位解釋作為特殊情況處理。

尾數:M是一個二進制小數,它的范圍是1 ~ 2-ε,或者是0 ~ 1-ε。

階碼:E的作用是對浮點數據加權,這個權重是2的E次冪(可能是負數)。

根據階碼的值,可分為一下三種情況:

情況一:規格化的值 (當階碼字段不全為0或全為1時) E = e-Bias Bias = 2^(k-1)-1 M = 1+f 情況二:非規格化的值 (當階碼字段全為0時) E = 1-Bias Bias = 2^(k-1)-1 M = f情況三:特殊值 (當階碼字段全為1時) 當小數域全為0時, 當s=1時,為-∞;當s=0時,為+∞。 當小數域不全為0時,為NaN。
  • 浮點數的舍入

有四種情況分別是:

向偶數舍入(默認)向零舍入向下舍入向上舍入
  • 浮點運算

    浮點加法:不滿足結合性、滿足單調性 浮點乘法:不滿足結合性、滿足單調性,在加法上不滿足分配性

教材學習中的問題和解決過程

課后練習題

  • 練習題2.4

    0x503c+0x8 = 0x5044 0x503c-0x40 = 0x4ffc 0x503c+64 = 0x50a1 0x50ea-0x503c=0xae
  • 練習題2.6

寫出0x00359141、0x4a564504的二進制表示:

0x00359141 = 0000 0000 0011 0101 1001 0001 0100 0001 0x4a564504 = 0100 1010 0101 0110 0100 0101 0000 0100
  • 練習題2.8

a = [01101001],b = [01010101]。計算:

~a = [10010110] ~b = [10101010] a&b = [01000001] a|b = [01111101] a^b = [00111100]

本周代碼托管鏈接

http://git.oschina.net/20145240lsj/lsj20145240/tree/master/

學習進度條

代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
目標5000行30篇400小時
第一周200/2001/120/20
第二周300/5001/218/38
第三周200/7 001/322/60

參考資料

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

轉載于:https://www.cnblogs.com/20145240lsj/p/5928166.html

總結

以上是生活随笔為你收集整理的20145240 《信息安全系统设计基础》第三周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。