go學習記——(6)進制

對於整數,有四種表示方式:

  1. 二進制:0,1。在golang中,不能直接使用二進制來表示一個整數。
  2. 十進制:0-9.
  3. 八進制:0-7.以數字0開頭表示。
  4. 十六進制:0-9,A-F。以0x開頭。
  5. 八進制轉二進制:將八進制中的每一位轉成對應的三位二進制。反之亦然。
  6. 十六進制轉二進制:將十六進制中的每一位轉成對應的四位二進制。反之亦然。

原碼、反碼、補碼

  1. 二進制的最高位是符號位,0表示正數,1表示負數
  2. 正數的原碼、反碼、補碼都一樣
  3. 負數的反碼=它的原碼符號位不變,其他位取反
  4. 負數的補碼=它的反碼+1
  5. 0的反碼、補碼都是0
  6. 在計算機運算的時候,都是以補碼的形式運算。

位運算

按位與:&
按位或:|
按位異或:^

2&3
2的補碼:0000 0010
3的補碼:0000 0011
2&30000 0010 =>2

2|3
2的補碼:0000 0010
3的補碼:0000 0011
2|30000 0011 =>3

2^3
2的補碼:0000 0010
3的補碼:0000 0011
2^30000 0001 =>1

-2^2
-2的原碼:1000 0010
-2的反碼:1111 1101 // 原碼首位不變,其他位取反
-2的補碼:1111 1110 // 反碼+1

 2的補碼:0000 0010
 
-2^2補碼:1111 1100 // 同位相同爲0,不同爲1
-2^2反碼:1111 1011 // 補碼-1
-2^2原碼:1000 0100 =>-4 //反碼首位不變,其他位取反

右移:>>,低位溢出,符號位不變,並用符號位補溢出的高位
左移:<<,符號位不變,低位補0

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