2017-2018-1 20155338 《信息安全系统设计基础》 第三周学习总结
2017-2018-1 20155338 《信息安全系統設計基礎》第三周學習總結
教材學習內容總結
一、三種重要的數字表示
(1)無符號數、有符號數、浮點數
無符號編碼是基于傳統的二進制表示法,表示大于或者等于零的數字。
浮點數編碼就是表示實數的科學計數法的以2為基數的版本。
有符號數即二進制補碼。
正數的原碼、反碼以及補碼是其本身。
負數的原碼是其本身,反碼是對原碼除符號位之外的各位取反,補碼則是反碼加1。
(2)為什么用補碼表示
能夠統一+0和-0的表示
采用原碼表示:
+0的二進制表示形式為0 000 0000,而-0的二進制表示形式為1 000 0000;
采用反碼表示:
+0的二進制表示形式為0 000 0000,而-0的二進制表示形式為1 111 1111;
采用補碼表示:
+0的二進制表示形式為0 000 0000,而-0的二進制表示形式為1 111 1111+1=1 0000 0000,因為計算機會進行截斷,只取低8位,所以-0的補碼表示形式為0000 0000。
補碼的表示范圍比原碼和反碼表示的范圍都要大。用補碼能夠表示的范圍為-128~127,0~127分別用00000000~01111111來表示,而-127~-1則用10000001~11111111來表示,多出的10000000則用來表示-128。
一些需要了解的概念
(1)字
每個計算機都有一個字長,指明整數和指針數據的標稱大小。因為虛擬地址是以這樣的一個字來編碼的,所以字長最重要的系統參數就是虛擬地址空間的最大大小。
對于一個字長為w位的機器而言,虛擬地址的范圍為0~2^w-1,程序最多訪問2^w字節。
(2)gcc -m32/64
當沒有-m32或-m64參數時,一般情況下會生成跟操作系統位數一致的代碼
gcc -m32 可以在64位機上(比如實驗樓的環境)生成32位的代碼
(3)字節順序
字節順序是網絡編程的基礎,是指占內存多于一個字節類型的數據在內存中的存放順序,通常有小端、大端兩種字節順序。
小端字節序指低字節數據存放在內存低地址處,高字節數據存放在內存高地址處。
大端字節序是高字節數據存放在低地址處,低字節數據存放在高地址處。
(4)布爾代數
邏輯運算:
結果是1或0
所有邏輯運算都可以用與、或、非表達(最大式、最小式)而與或非可以用“與非”或“或非”表達,所以,只要一個與非門,就可以完成所有的邏輯運算。
數據類型轉換中的陷阱和可能會導致的漏洞
數據類型中的轉換轉換一個固定的長度,存儲的最大值是固定的,當嘗試去存儲一個大于這個固定的最大值時,將會導致一個溢出。
溢出將會導致"不能確定的行為"。沒有辦法去用一個應用程序來判斷先前計算的結果在實際上是否也是正確的,所以可能導致某些類型的bugs,緩沖區溢出等。
教材學習中的問題和解決過程
問題1:如何檢查補碼加減法中的溢出問題
問題1解決方案:
1、 兩個符號相同的補碼數相加,如果和的符號與加數的符號相反,或兩個符號相反的補碼數相減,差的符號與減數的符號相同,都屬于運算結果溢出.
2、兩個補碼數相加減時,若最高數值位向符號位送的進位值與符號位送向更高位的進位值不相同,也是運算結果溢出.
3、在采用雙符號位(如定點小數的模4補碼)運算時,若兩個符號位的得值不同(01或10)則是溢出.01表明兩個正數相加,結果大于機器所能表示的最大正數,稱為"上溢";10表明兩個負數相加,結果小于機器所能表示的最小負數,稱為"下溢"。
代碼托管
上周考試錯題總結
-無
結對及互評
本周結對學習情況
- [# 2017-2018-1 20155338 《信息安全系統設計基礎》第三周學習總結教材學習內容總結
一、三種重要的數字表示
(1)無符號數、有符號數、浮點數
無符號編碼是基于傳統的二進制表示法,表示大于或者等于零的數字。
浮點數編碼就是表示實數的科學計數法的以2為基數的版本。
有符號數即二進制補碼。
正數的原碼、反碼以及補碼是其本身。
負數的原碼是其本身,反碼是對原碼除符號位之外的各位取反,補碼則是反碼加1。
(2)為什么用補碼表示
能夠統一+0和-0的表示
采用原碼表示:
+0的二進制表示形式為0 000 0000,而-0的二進制表示形式為1 000 0000;
采用反碼表示:
+0的二進制表示形式為0 000 0000,而-0的二進制表示形式為1 111 1111;
采用補碼表示:
+0的二進制表示形式為0 000 0000,而-0的二進制表示形式為1 111 1111+1=1 0000 0000,因為計算機會進行截斷,只取低8位,所以-0的補碼表示形式為0000 0000。
補碼的表示范圍比原碼和反碼表示的范圍都要大。用補碼能夠表示的范圍為-128~127,0~127分別用00000000~01111111來表示,而-127~-1則用10000001~11111111來表示,多出的10000000則用來表示-128。
一些需要了解的概念
(1)字
每個計算機都有一個字長,指明整數和指針數據的標稱大小。因為虛擬地址是以這樣的一個字來編碼的,所以字長最重要的系統參數就是虛擬地址空間的最大大小。
對于一個字長為w位的機器而言,虛擬地址的范圍為0~2^w-1,程序最多訪問2^w字節。
(2)gcc -m32/64
當沒有-m32或-m64參數時,一般情況下會生成跟操作系統位數一致的代碼
gcc -m32 可以在64位機上(比如實驗樓的環境)生成32位的代碼
(3)字節順序
字節順序是網絡編程的基礎,是指占內存多于一個字節類型的數據在內存中的存放順序,通常有小端、大端兩種字節順序。
小端字節序指低字節數據存放在內存低地址處,高字節數據存放在內存高地址處。
大端字節序是高字節數據存放在低地址處,低字節數據存放在高地址處。
(4)布爾代數
邏輯運算:
結果是1或0
所有邏輯運算都可以用與、或、非表達(最大式、最小式)而與或非可以用“與非”或“或非”表達,所以,只要一個與非門,就可以完成所有的邏輯運算。
數據類型轉換中的陷阱和可能會導致的漏洞
數據類型中的轉換轉換一個固定的長度,存儲的最大值是固定的,當嘗試去存儲一個大于這個固定的最大值時,將會導致一個溢出。
溢出將會導致"不能確定的行為"。沒有辦法去用一個應用程序來判斷先前計算的結果在實際上是否也是正確的,所以可能導致某些類型的bugs,緩沖區溢出等。
教材學習中的問題和解決過程
問題1:如何檢查補碼加減法中的溢出問題
問題1解決方案:
1、 兩個符號相同的補碼數相加,如果和的符號與加數的符號相反,或兩個符號相反的補碼數相減,差的符號與減數的符號相同,都屬于運算結果溢出.
2、兩個補碼數相加減時,若最高數值位向符號位送的進位值與符號位送向更高位的進位值不相同,也是運算結果溢出.
3、在采用雙符號位(如定點小數的模4補碼)運算時,若兩個符號位的得值不同(01或10)則是溢出.01表明兩個正數相加,結果大于機器所能表示的最大正數,稱為"上溢";10表明兩個負數相加,結果小于機器所能表示的最小負數,稱為"下溢"。
代碼托管
上周考試錯題總結
-無
結對及互評
本周結對學習情況
20155307
結對學習內容
- 三種重要的數字表示 - 布爾代數學習進度條
| 目標 | 2000行 | 15篇 | 200小時 | |
| 第一周 | 150/150 | 1/1 | 17/17 | |
| 第二周 | 70/220 | 1/2 | 12/29 | |
| 第三周 | 100/320 | 1/3 | 10/39 |
計劃學習時間:15小時
實際學習時間:10小時
]()
- 結對學習內容
- 三種重要的數字表示
- 布爾代數
- ...
學習進度條
| 目標 | 2000行 | 15篇 | 200小時 | |
| 第一周 | 150/150 | 1/1 | 17/17 | |
| 第二周 | 70/220 | 1/2 | 12/29 | |
| 第三周 | 100/320 | 1/3 | 10/39 |
計劃學習時間:15小時
實際學習時間:10小時
轉載于:https://www.cnblogs.com/Hdywan/p/7674370.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的2017-2018-1 20155338 《信息安全系统设计基础》 第三周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CriminalIntent项目开发--
- 下一篇: C语言第一次博客作业——输入输出格式