當前位置:編程學習大全網 - 編程軟體 - -1在C語言環境下存儲對應的二進制數序到是?

-1在C語言環境下存儲對應的二進制數序到是?

-1用二進制表示為:1111111111111111。

c++中負數存儲時,不是簡單的將符號位置為1,而是采用補碼的形式存儲的:負數最高位為符號位,也就是1,其余全部取反,然後再加1。

假如操作系統是32位,-1的二進制存儲不是:1000000000000001,而是:1111111111111110+1即1111111111111111。

C語言中printf("%u")表示按無符號數形式輸出壹個整數。現在的機器壹般為32位或64位機,整數存儲占4個字節,壹個字節8位,***計32位。整數在計算機中以補碼形式存儲,-1的補碼為32個1組成的二進制數,按無符號數輸出這個二進制數,就是2^32-1=4294967295。

由於采用補碼表示整數,計算機本身不關心整數是正數還是負數,統壹按無符號數對待。具體輸出時,顯示為什麽數,計算機按編程者的格式要求進行處理輸出。如32個1組成的二進制數,按%d輸出就是-1,按無符號輸出就是4294967295。在計算機中,可以區分正負的類型,稱為有符號類型(signed),無正負區分的類型,稱為無符號類型(unsigned)。有符號類型數據的最高位表示符號,1表示正,0表示負。

  • 上一篇:算法,如何在VB中實現矩陣A(3,3)和矩陣B(3,3)的相乘?
  • 下一篇:編程統計全班學生成績。要求每次用鍵盤輸入壹個學生的2門分數,計算輸出每個學生
  • copyright 2024編程學習大全網