無符號編碼是基於傳統的二進制表示法,表示大於或者等於零的數字。html
浮點數編碼就是表示實數的科學計數法的以2爲基數的版本。git
有符號數即二進制補碼。編程
正數的原碼、反碼以及補碼是其自己。安全
負數的原碼是其自己,反碼是對原碼除符號位以外的各位取反,補碼則是反碼加1。網絡
可以統一+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。
補碼的表示範圍比原碼和反碼錶示的範圍都要大。用補碼可以表示的範圍爲-128127,0127分別用0000000001111111來表示,而-127-1則用10000001~11111111來表示,多出的10000000則用來表示-128。
每一個計算機都有一個字長,指明整數和指針數據的標稱大小。由於虛擬地址是以這樣的一個字來編碼的,因此字長最重要的系統參數就是虛擬地址空間的最大大小。
對於一個字長爲w位的機器而言,虛擬地址的範圍爲0~2w-1,程序最多訪問2w字節。
當沒有-m32或-m64參數時,通常狀況下會生成跟操做系統位數一致的代碼
gcc -m32 能夠在64位機上(好比實驗樓的環境)生成32位的代碼
字節順序是網絡編程的基礎,是指佔內存多於一個字節類型的數據在內存中的存放順序,一般有小端、大端兩種字節順序。
小端字節序指低字節數據存放在內存低地址處,高字節數據存放在內存高地址處。
大端字節序是高字節數據存放在低地址處,低字節數據存放在高地址處。
邏輯運算:
結果是1或0
全部邏輯運算均可以用與、或、非表達(最大式、最小式)而與或非能夠用「與非」或「或非」表達,因此,只要一個與非門,就能夠完成全部的邏輯運算。
數據類型中的轉換轉換一個固定的長度,存儲的最大值是固定的,當嘗試去存儲一個大於這個固定的最大值時,將會致使一個溢出。
溢出將會致使"不能肯定的行爲"。沒有辦法去用一個應用程序來判斷先前計算的結果在其實是否也是正確的,因此可能致使某些類型的bugs,緩衝區溢出等。
問題1:如何檢查補碼加減法中的溢出問題
問題1解決方案:
一、 兩個符號相同的補碼數相加,若是和的符號與加數的符號相反,或兩個符號相反的補碼數相減,差的符號與減數的符號相同,都屬於運算結果溢出.
二、兩個補碼數相加減時,若最高數值位向符號位送的進位值與符號位送向更高位的進位值不相同,也是運算結果溢出.
三、在採用雙符號位(如定點小數的模4補碼)運算時,若兩個符號位的得值不一樣(01或10)則是溢出.01代表兩個正數相加,結果大於機器所能表示的最大正數,稱爲"上溢";10代表兩個負數相加,結果小於機器所能表示的最小負數,稱爲"下溢"。
-無
- [# 2017-2018-1 20155338 《信息安全系統設計基礎》第三週學習總結
無符號編碼是基於傳統的二進制表示法,表示大於或者等於零的數字。
浮點數編碼就是表示實數的科學計數法的以2爲基數的版本。
有符號數即二進制補碼。
正數的原碼、反碼以及補碼是其自己。
負數的原碼是其自己,反碼是對原碼除符號位以外的各位取反,補碼則是反碼加1。
可以統一+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。
補碼的表示範圍比原碼和反碼錶示的範圍都要大。用補碼可以表示的範圍爲-128127,0127分別用0000000001111111來表示,而-127-1則用10000001~11111111來表示,多出的10000000則用來表示-128。
每一個計算機都有一個字長,指明整數和指針數據的標稱大小。由於虛擬地址是以這樣的一個字來編碼的,因此字長最重要的系統參數就是虛擬地址空間的最大大小。
對於一個字長爲w位的機器而言,虛擬地址的範圍爲0~2w-1,程序最多訪問2w字節。
當沒有-m32或-m64參數時,通常狀況下會生成跟操做系統位數一致的代碼
gcc -m32 能夠在64位機上(好比實驗樓的環境)生成32位的代碼
字節順序是網絡編程的基礎,是指佔內存多於一個字節類型的數據在內存中的存放順序,一般有小端、大端兩種字節順序。
小端字節序指低字節數據存放在內存低地址處,高字節數據存放在內存高地址處。
大端字節序是高字節數據存放在低地址處,低字節數據存放在高地址處。
邏輯運算:
結果是1或0
全部邏輯運算均可以用與、或、非表達(最大式、最小式)而與或非能夠用「與非」或「或非」表達,因此,只要一個與非門,就能夠完成全部的邏輯運算。
數據類型中的轉換轉換一個固定的長度,存儲的最大值是固定的,當嘗試去存儲一個大於這個固定的最大值時,將會致使一個溢出。
溢出將會致使"不能肯定的行爲"。沒有辦法去用一個應用程序來判斷先前計算的結果在其實是否也是正確的,因此可能致使某些類型的bugs,緩衝區溢出等。
問題1:如何檢查補碼加減法中的溢出問題
問題1解決方案:
一、 兩個符號相同的補碼數相加,若是和的符號與加數的符號相反,或兩個符號相反的補碼數相減,差的符號與減數的符號相同,都屬於運算結果溢出.
二、兩個補碼數相加減時,若最高數值位向符號位送的進位值與符號位送向更高位的進位值不相同,也是運算結果溢出.
三、在採用雙符號位(如定點小數的模4補碼)運算時,若兩個符號位的得值不一樣(01或10)則是溢出.01代表兩個正數相加,結果大於機器所能表示的最大正數,稱爲"上溢";10代表兩個負數相加,結果小於機器所能表示的最小負數,稱爲"下溢"。
-無
結對學習內容
- 三種重要的數字表示 - 布爾代數
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 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小時