回覆列表
  • 1 # 使用者2180107962444

    二進位制中以最高有效位作為符號位,1 表示負數 0是正數。

    現在假設 -29 和 -25 最高有效位為 8 位 ,透過正數的二進位制 求補運算 取反+1 得到對應負數的二進位制

    29 的二進位制 0001 1101 取反 11110 0010 +1 11110 0011

    25 的二進位制 0001 1001 取反 11110 0110 +1 11110 0111

    得到兩個負數的二進位制後 -29-25 就變成了 (-29)+(-25) 的加法了

    11110 0011

    + 11110 0111

    = 11100 1010 這個就是結果了 -54的8位表示

    (進位1)

    無論-29和-25 用多少位來儲存,演算法都可如此,

    比如你在C中聲明瞭 int a=-29 在C中 int 似乎是 雙字,也就是32 位,

    29 的二進位制變成 0000 0000 0000 0000 0000 0000 0001 1101

    -29 就變成 1111 1111 1111 1111 1111 1111 1110 0011

    看起來很長,但實質不變

  • 中秋節和大豐收的關聯?
  • 唯依美護膚品?