2014-05-22-計算機的數據表示

今天看《深入理解計算機系統》的看到很相似的符號,特此做了一下總結和區分,以防搞混亂

首先是位運算符號涉及以下幾個符號:

1,&(AND)

2.,|(OR)

3。~(NOT)

4,^(異或)//相同爲0不同爲1

5,》》 《《 左右移動,X>>3,X<<4 

這寫位運算最好都是展開成二進制來進行操作,這樣最明顯

然後,和位操作的符號很像的就是邏輯運算了

首先第一個問題是:什麼是邏輯運算

A;所謂的邏輯運算之針對命題來,他們是2個完全不一樣的東西,功能上來說認爲所有非0的參數都表示TRUE,0表示FLASE

其次第二個問題是:他們都有哪些符號?

1,&&(AND)

2,||(OR)

3,!(NOT)

之所以說他們完全不懂請看下面的結果

!0X61 == 0X00

!!0X61 =0X01

他們只有二值表示:0X00 或者0X01

而位運算

0X61&0X03 ==0X01/保持低2位同理類推!!

問題三:>> <<這個兩個位移符號補位是怎麼樣的

0X40<<4,如這個,左移地位都是補充0

而0X40>>4高位到底是補充0還是1?

雖然沒有規定是邏輯左移還是算術左移,但是目前幾乎都是算術左移

算術左移:高位是1補充1,是0補充0

位的操作還有保持某幾位,比如低四位:X&0XF

某幾位置一:X|0XF

任何一個數都是自己的補數即X^X=0;

向左是負數,向右是負數

補碼的表示幾乎都是現在的機器所使用的用法,即最高位是權高位符號位,其權重=-Xw*2^(w-1)

所以有符無符號轉換成補碼是+權重,而補碼轉成無符號則是T2U(X)=2^w-X

通常我們寫某個字長的最小值是是這樣寫的TMIN(32)=-2^31-1 而不是寫成-2^32

當有符號和無符號數據相比較時,會把有符號數據轉化成無符號的數據


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章