回覆列表
  • 1 # n戀上你的溫度

    變數在記憶體當中的儲存方式都是二進位制數,而二進位制只有0或1兩種情況。那這樣的話,就要求這裡個數中有一個表示正號,一個表示符號。這就規定了負號用1表示,正號用0表示。如果你的-8是一個char(字元型)的資料的話,那它就佔一個儲存單元,一個儲存單元就是一個位元組(byte),共八位。好,前面說變數數值在記憶體當中都是二進位制,如果是正數,8位全部表示資料,沒有符號位,轉換成二進位制就和簡單了。如果是負數,最高位就表示符號位,其餘的7位表示資料位。所以單純是用二進位制表示的話,-8就應該是10001000。補充一點:負數在記憶體當中是以它的補碼儲存的。補碼的求法是:1、取絕對值2、取反3、加1所以-8在記憶體當中的二進位制形式是:11111000,如果我們用一個無符號變數去讀這塊記憶體,結果會是:十六進位制的F8。為什麼是這個結果?因為只有十進位制才有正負之分,而十六進位制和二進位制是沒有正負之分的,在記憶體當中的形式是這樣,它只是一種狀態,看我們用什麼表示方法的變數去讀這塊記憶體了,如果你用的是有符號十進位制的變數讀它,它就是一個負數,轉換成十六進位制,可就沒有符號在前面了。

  • 中秋節和大豐收的關聯?
  • 求謝天謝地造句?