當前位置:編程學習大全網 - 源碼下載 - 有符號數的表示方法(補碼、原碼、反碼)

有符號數的表示方法(補碼、原碼、反碼)

補碼是最常見的有符號數的計算機表示方式,在這個定義中,將字的最高有效位解釋為負權

例如:

Java采用補碼表示,

反碼的最高位的權比補碼多1,即

原碼的最高有效位是符號位,用來確定剩下的位應該取負權還是正權

例如:

(字長=16)

0的表示:

補碼:0000000000000000

反碼:+0=0000000000000000 -0=1111111111111111

原碼:+0=0000000000000000 -0=1000000000000000

-1的表示:

補碼:0xFFFF

反碼:1111111111111110

原碼:1000000000000001

正數的補碼、反碼、原碼都相同

負數原碼與反碼的相互轉換

負數原碼轉化為反碼:符號位不變,數值位按位取反

例如:

負數反碼轉化為原碼:符號位不變,數值位按位取反

例如:

負數反碼和補碼的相互轉化

負數反碼轉化為補碼:末尾加1,若數值最高位有進位則丟棄,不向符號位進位

例如:

(為什麽是加1?前面說過,同樣的壹個最高位為1的向量,反碼比補碼多1,如果反碼轉化為補碼而沒有任何變動,則大小憑空少了1,所以要加1)

負數補碼轉化為反碼:末尾減1

例如:

幾乎所有現代機器使用補碼表示有符號數,但浮點數中有使用原碼編碼

  • 上一篇:P2P網貸平臺上借錢不還會怎樣
  • 下一篇:國高網如何備份山寨幣
  • copyright 2024編程學習大全網