當前位置:編程學習大全網 - 網站源碼 - C語言中有符號基本整型[signed]int 取值範圍(-32768——32767)是怎麽算出來的?

C語言中有符號基本整型[signed]int 取值範圍(-32768——32767)是怎麽算出來的?

以最高位為符號位,二進制原碼最大為0111111111111111=2的15次方減1=32767最小為1111111111111111=-2的15次方減1=-32767。

此時0有兩種表示方法,即正0和負0:0000000000000000=1000000000000000=0所以,二進制原碼表示時,範圍是-32767~-0和0~32767,因為有兩個零的存在,所以不同的數值個數壹***只有2的16次方減1個,比16位二進制能夠提供的2的16次方個編碼少1個。

但是計算機中采用二進制補碼存儲數據,即正數編碼不變,從0000000000000000到0111111111111111依舊表示0到32767,而負數需要把除符號位以後的部分取反加1,即-32767的補碼為1000000000000001。

補碼系統中,範圍是-23768~32767。因此,實際上,二進制的最小數確實是1111111111111111,只是二進制補碼的最小值才是1000000000000000,而補碼的1111111111111111是二進制值的-1。

擴展資料

C語言double大小和取值範圍

占用的字節數:

printf("float:bytes%d;bit%d\n",sizeof(float),sizeof(float)*8);

double:bytes8;bit64

取值範圍:C標準規定,double類型至少能表示10位有效數字。壹些系統將多出來的32bit都來表示尾數部分,這就至少有13位有效數字了,這也超出了c規定的最小標準了。

  • 上一篇:想在aspx頁面裏加入正則表達式
  • 下一篇:如何在linux操作系統中安裝vsftp服務
  • copyright 2024編程學習大全網