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

歡迎訪問 生活随笔!

生活随笔

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

windows

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

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

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

教材學習內容總結

信息的表示和處理

三種數字表示

  • 無符號數:基于傳統的二進制表示法,表示大于或等于零的數字
  • 補碼:表示有符號數,可為正可為負的數字
  • 浮點數:表示實數的科學計數法的以二為基數的版本
  • 整數運算和浮點數運算有不同的數學屬性,因為它們處理數字表示有限性的方式不同,整數的表示雖然只能編碼一個相對較小的數值范圍,但這種表示精確;浮點數編碼數值范圍相對較大,但是近似的。

信息存儲

  • 字節:
    • 計算機最小的可尋址的存儲器單位——字節
    • 一個字節的值域:00H-FFH
  • 字:
    • 每個計算機都有一個字長,指明整數和指針數據的標稱大小。因為虛擬地址是以這樣的一個字來編碼的,所以字長最重要的系統參數就是虛擬地址空間的最大大小
    • 對于一個字長為w位的機器而言,虛擬地址的范圍為0~2^w-1,程序最多訪問2^w字節。
    • w=32或64:也就是我們通常所說的電腦是32位還是64位。也可以理解為CPU一次處理數據的位數。
  • 數據大小:
    • C99特性:當沒有-m32或-m64參數時,一般情況下會生成跟操作系統位數一致的代碼;gcc -m32 XXX.c可以在64位機上(比如實驗樓的環境)生成32位的代碼。
  • 尋址和字節順序:
    • 小端法:最低有效字節在前面——“高對高,低對低”。
    • 大端法:最高有效字節在前面。
    • 理解:我們一般用到的是小端法,比如在X86匯編中我們接觸到的就是小端法。小端法的特點是“高對高,低對低”,但是其每個字節的內部是不變化順序的,這個不需要死記,想想匯編上課時學的內存示意圖,CPU以每個字節為單位尋址,所以字節內部的順序是不變化的。
    • 例子:0x1234567,小端法67 45 23 01,大端法:01 23 45 67
  • 強制類型轉換
    • 代碼參見:pointer.c
  • 表示字符串和表示代碼
    • 字符串:c語言中字符串被編碼成為一個以null(值為0)字符結尾的字符數組。多使用ASCII字符碼。在使用ASCII字符碼的任何系統上都能得到相同的結果,與字節順序和字大小規則無關,所以文本數據比二進制數據具有更強的平臺獨立性
    • 代碼:二進制代碼在不同的操作系統上有不同的編碼規則,所以二進制代碼是不兼容的。例如:char *使用機器的全字長,在32位中占4個字節,而在64位的機器中則占8個字節。

布爾代數

  • 運算符號:
    • 與:&&(位與:&)
    • 或:||(位或:|)
    • 非:!(位非:~)
    • 位異或:^
  • 位向量:有固定長度為w、由0和1組成的串。
    • 位向量的應用——表示有限集合。
  • 掩碼運算:掩碼是位運算的重要應用,這里掩碼是一個特定位模式,表示從一個字中選擇一個位的集合。對特定位可以置一,可以清零。
    • 例子:任取一個數x=0x123ABCDE,x&0xFF = 0x000000DE
    • 有點類似計算機網絡中“子網掩碼”這個概念,可以對照理解。

整數表示

  • 整型數據類型
    • 表示有限范圍的整數,每種類型都能用關鍵字來指定大小,還可以指定是非負數(unsigned)還是負數(默認)。這些不同大小的分配的字數會根據機器的字長和編譯器有所不同。
  • 取值范圍
    • 32位機器和64位機器對于同一數據類型的典型取值范圍是有所不同的。
    • 典型取值范圍中,取值范圍不對稱——負數的范圍比整數的范圍大1。
    • c語言標準定義的每種數據類型必須能夠表示的最小的取值范圍中,正數和負數的取值范圍是對稱的。
    • 要用C99標準中的“long long”類型,編譯是要用gcc -std = c99
  • 無符號數的編碼
    • 編碼方法詳見課本P39,之前學過,不作贅述。
    • 對于長度為w的位向量,都有一個唯一的值與之對應;反過來,在0~2^w-1之間的每一個整數都有一個唯一的長度為w的位向量二進制表示與之對應。二者之間存在一個雙射的關系。
  • 補碼編碼——有符號數的編碼
    • 我們都知道補碼的最高位是表示符號位,解釋為負權,“權重”為-2的(w-1)次方,即無符號表示中的權重的負數。符號位為1,表示值為負,符號位為0,表示值為非負(不是正,因為有0)
    • 補碼的映射關系同樣是一一對應的
    • 補碼的范圍:-2^(w-1)~2^(w-1)-1,即|TMin|=|TMax|+1——因為非負數中0的存在。
    • 無符號數編碼(U)和補碼(T):UMax = 2 TMax + 1
    • 大多數情況下用補碼來表示有符號數,并且具有的是典型的取值范圍。
    • 有符號數的其他表示方法:
      • 原碼
      • 反碼
      • 相關介紹不在此贅述
  • 有符號數和無符號數的轉換
    • 處理同樣字長的有符號數和無符號數之間相互轉換的一般規則:數值可能會改變,但是位模式不變。
    • c語言允許無符號數和有符號數之間的轉換,轉換的原則是底層的位表示不變。
    • 當從無符號數轉換為有符號數是,效果是應用函數U2T,從有符號數轉化為無符號數時,應用函數T2U,其中w表示數據類型的位數。
  • 擴展
    • 從一個較小的數據類型轉換為較大的數據類型,同時保持數值不變。
    • 零擴展:多用于無符號數轉換為一個更大的數據類型。只需在開頭加上0即可。
    • 符號擴展:多用于補碼數字轉換,最高有效位是什么,就添加什么。
    • 注:無符號和有符號數字之間的轉換,和數據的大小的轉換,這之間的相對順序能夠影響到一個程序的行為。
  • 截斷數字
    • 不用額外的位來擴展數值,而是減少表示一個數字的位數。而這么做可能會改變它的值,這也是溢出的一種形式。
    • 將一個w位的數截斷為k位數字時,就會丟棄高w-k位。
    • 對于無符號數來說,就相當于 mod 2的k次冪
    • 對于有符號數來說,先按照無符號數截斷,然后再轉化為有符號數
    • 具體的公式參見書P52頁。
  • 無符號數適用范圍
    • 適用于沒有任何數字意義的位的集合,比如地址;
    • 又或者實現模運算、多精度運算的時候,數字由字的數組表示的時候。
  • 有符號數適用范圍
    • 編程中多用有符號數

整數運算

  • 無符號運算
    • 無符號運算本質上就是模運算,mod 2的w次冪。
    • 加法
      • 涉及到的相關知識有:交換群(阿貝爾群),單位元,加法逆元等等。計算起來很簡單。
    • 乘法
      • 兩個w位的無符號數相乘,實際上是截取了低w位,但是等價于mod 2的w次冪。
      • 總之就是模冪運算。
  • 補碼運算
    • 加法運算:兩個數的w位補碼之和與無符號之和有完全相同的位級表示。
    • 溢出:
      • 補碼加法的溢出情況比無符號運算更為復雜,分為正溢出、正常、負溢出。正溢出就是超過正數的最大范圍,負溢出就是超過負數的最大范圍,具體的公式在書58頁,正負溢出的范圍和原因,直觀一點的圖在59頁。
      • 但是其實公式里給的本質仍然是模運算,模掉w位的補碼最高有效位的權重2的w次冪。
    • 非運算:
      • 對于范圍在[-2^(w-1),2^(w-1))中的x,補碼的非運算有如下兩種情況:
      • x=-2^(w-1)時,為-2^(w-1)
      • x>-2^(w-1)時,為-x
    • 乘法運算:同無符號乘法。若為截斷后的結果,則取結果的后w位作為計算結果。**無符號運算和補碼運算在“+”、“-”、“*”在位級上有相同的結果。**
    • 乘以常數:對于某個常數K的表達式x*K生成代碼,編譯器會將K的二進制表示表達為一組0或1的交替的序列: [(0…0)(1…1)(0…0)…(1…1)],可以用以下兩種形式來計算這些乘積的結果:
      • A:(x<<n)+(x<<n-1)+……+(x<<m)
      • B:(x<<n+1)-(x<<m)
    • 除以2的冪:設x/K,令K=2^n,
      • 當x為正數時,計算 x>>n;
      • 當x為負數時,將x加上偏置量,即加上2^n-1(即K-1),計算** (x+偏置量)>>n**。

浮點數

  • 浮點表示對形如V=x X (2^y)的有理數進行編碼,適用于:
    • 非常大的數字
    • 非常接近于0的數字
    • 作為實數運算的近似值
    • IEEE浮點標準:IEEE標準754
  • 二進制小數:
    • 二進制點左邊第i位,權為2^i;右邊第i位,權為(1/2)^i。
    • 增加二進制表示的長度可以提高表示的精度。
  • IEEE浮點格式:
    • 表示形式:V=(-1)^s * M * 2^E
    • 符號:s決定這個數是正還是負。0的符號位特殊情況處理。
    • 尾數:M是一個二進制小數,范圍為1~2-ε或者0~1-ε,ε=(1/2)^n。
    • 階碼:E對浮點數加權,權重是2的E次冪(可能為負數)。
  • 根據階碼的值,被編碼的值可分為三種:
    • 情況一:規格化的值(當階碼字段不全為0或全為1時),階碼 E = e-Bias(e為無符號整數);
    • 偏置值Bias = 2^(k-1)-1;尾數 M = 1+f(小數字段frac的解釋為描述小數值f,二進制小數點在小數字段最高有效位的左邊)。
    • 情況二:非規格化的值 (當階碼字段全為0時),E = 1-Bias;Bias = 2^(k-1)-1;M = f。
    • 情況三:特殊值 (當階碼字段全為1時),當小數域全為0時, 當s=1時,為-∞;當s=0時,為+∞;當小數域不全為0時,為NaN。
  • 浮點數的舍入:IEEE浮點格式定義了四種不同的舍入方法:
    • 向偶舍入(默認):將數字向上或向下舍入,是的結果的最低有效數字為偶數。能用于二進制小數。
    • 向零舍入:把整數向下舍入,負數向上舍入。
    • 向下舍入:正數和負數都向下舍入。
    • 向上舍入:正數和負數都向上舍入。
  • 浮點運算:
    • 浮點加法:不滿足結合性、滿足單調性。
    • 浮點乘法:不滿足結合性、滿足單調性,在加法上不滿足分配性。

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

教材P24中Perl腳本

  • 書中給了一個Perl腳本,當初并不知道怎么運行,按照書上給的指令試了試發現行不通
  • 最后轉念一想,既然是Perl腳本,那自然應該有Perl腳本的相關語句,不管怎樣,先在終端窗口中輸入perl看看ubuntu中是否自帶編譯工具,輸入完畢之后發現并沒有提示異常,說明系統中有這個指令,嘗試著在指令前加入perl,發現可行
  • 另外,可以用man perl指令調用幫助文檔進行查看(我裝了中譯版,所以顯示中文)

本周代碼托管截圖

  • 托管如下:

其他(感悟、思考等,可選)

  • 這周主要學習了信息的表示和處理,其實有很多知識我們在之前的課程中都已接觸過:《計算機導論》、《HDL數字邏輯電路》、《C語言程序設計》、《Java程序設計》、《匯編語言程序設計》。只不過不是很系統,也不是很深刻,只知道是什么不知道為什么。通過這一章節的學習,從操作系統出發,了解了內存中的存儲讀取機制,以及各種標準對信息的表示與要求,更深層次的了解到了信息在計算機中的表示。

學習進度條

代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
目標5000行30篇400小時
第一周200/2002/220/20學習了Linux常用命令
第二周79/2791/330/50了解vim,gcc,gdb基本操作
第三周182/4611/425/75更深層次了解信息處理

參考資料

  • 《深入理解計算機系統》
  • Linux 基礎入門(新版)
  • Linux系統編程
  • 2016-2017-1 《信息安全系統設計基礎》教學進程

轉載于:https://www.cnblogs.com/20145221GQ/p/5928354.html

總結

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

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