5233杨光--第三周实验报告
信息的表示和處理
一、數字表示
??? 1、 無符號數:編碼基于傳統的二進制表示法表示大于或等于零的數字。
? ? 2、 補碼:編碼是表示有符號整數的最常見方法,可以是正或者是負的數字。
? ? 3、 浮點數:編碼是表示實數的科學計數法的以二位基數的版本。?
? ? ?***當結果太大不能表示時會溢出,大量安全漏洞都是由于算數運算引發的***
二、信息存儲
? ? 1、最小的可尋址存儲器單位:字節
? ? 2、虛擬存儲器:每個字節都由唯一的數字標識,稱為地址
? ? 3、虛擬地址空間:所有可能地址的集合
? ? 4、每個程序對象可視為字節塊,程序本身是一個字節序列
***十六進制表示法
0x...
當x是2的非負整數二次冪時,將n寫作i+4j的形式,j表示0的個數
i=0 :1 ? ? ?i=1 :2 ? ?i=2 :4 ? ? i=3 :8
進制轉換代碼
***字
字長:指明整數和指針數據的標稱大小
字長為w,虛擬地址范圍:0~2的w次方-1,最多訪問2的w次方個字節
大多數計算機字長為32位,實驗樓為64位
gcc -m32 可以在64位機上生成32位的代碼
***數據大小
見書p26圖2-3
兩種不同的浮點數格式:單精度 雙精度
格式:4字節 8字節
***尋址和字節順序
小端法:最低有效字節在最前面,高對高,低對低
大端法:最高有效字節在最前面,相反
反匯編器:確定可執行程序文件所表示的指令序列的工具
C 強制類型轉換
sizeof 確定對象使用字節數
不同的操作系統有不同的分配規則,結果相同,指針值卻完全不同
字節模式 整型 0x00003039 ?浮點數 0x4640E400
***表示字符串
字符串:以null字符結尾的字符數組
文本數據比二進制數據具有更強的平臺獨立性
庫函數strlen不計算終止的空字符
***表示代碼
二進制代碼是不兼容的,很少能在不同操作系統間移植
2.1.7 布爾代數簡介
與 或 非 異或
位向量:表示有限集合
***C語言中的位級運算
確定一個位級運算最好的方法:將十六進制的參數擴展成二進制表示并執行二進制運算,然后再轉換回十六進制
常見用法:掩碼運算
掩碼:位模式,從一個字中選出的位的集合
***C語言中的邏輯運算
0 false 非0 true
如果對第一個參數求值就能確定表達式的結果,那么邏輯運算符就不會對第二個參數求值
***C語言中的移位運算
<< ? ?>>
邏輯右移:左端補0
算數右移:左邊補最高有效位
對于無符號數據,右移必須是邏輯的
?
三、整數表示
兩種方式
***整型數據類型
可表示負數,零,和正數
取值范圍中,負數的范圍比整數大1
***無符號數的編碼
重要屬性:每個介于0~2的w次方-1之間的數都有唯一一個w位的值編碼(雙射函數)
***補碼編碼
最常見的有符號數的計算機表示方式就是補碼形式
將字的最高有效位解釋為負權
最高有效位:符號位
權重-2的位數次方,是無符號表示中權重的負數
最小值[10...0] 最大值[01...1]
UMax TMin TMax
P42頁表
|TMin|=|TMax|+1
UMax=2TMax+1
***有符號數和無符號數之間的轉換
數值可能會改變,但是位模式不變
這一段沒太看懂
***C語言中的有符號數與無符號數
大多數數字都默認為有符號的
要創建一個無符號常量,要加上后綴U或u
轉換的原則是底層的位保持不變
如果一個運算一個有符號一個沒符號,會將有符號強制轉換為無符號
***擴展一個數字的位表示
在不同字長的整數之間轉換,同時又保持數值不變
無符號數:開頭添0(零擴展)
補碼:添加最高有效位值得副本(符號擴展)
***截斷數字
減少一個數字的位數
截斷一個數字會改變值(溢出)
?
四、整數運算
***無符號加法
可以被視作一種模運算形式
溢出:完整的整數結果不能放到數據類型的字長限制中去
2.3.2 補碼加法
2.3.3 補碼的非
2.3.4 無符號乘法
2.3.5 補碼乘法
2.3.6 乘以常數
2.3.7 除以2的冪?
五、 浮點數
對形如V=x*2的y次方的有理數進行編碼
***二進制小數
重點掌握表示方法,p69表
***IEEE浮點表示
標準:V=(-1)的s次方*M*2的E次方
符號:s決定正(0)負(1)
尾數:M是二進制小數
階碼:E的作用是對浮點數加權
情況1:規格化的值:當exp的位模式既不全是0,也不全是1
情況2:非規格化的值:階碼域全0
情況3:特殊值:階碼全1
***舍入
找到最接近的匹配值
四種舍入方式
默認方法找到做接近的匹配,其他三種用于計算上界和下界
向偶數舍入(默認):向上舍入,向下舍入
***浮點運算
不具有結合性
滿足了單調性
只有有限的范圍和精度
***C語言中的浮點數
float double
?
感想:這部分講的基本和以前學過的知識能相結合,所以不是很難理解,學的較為輕松,就是補碼轉有符號數還是不是非常熟練,需要多練習。
轉載于:https://www.cnblogs.com/yg137565645/p/4861267.html
總結
以上是生活随笔為你收集整理的5233杨光--第三周实验报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word怎么设置题注
- 下一篇: Shell数组相关操作