int表示範圍及解釋

2021-10-01 12:41:23 字數 967 閱讀 5471

計算機中32位int型別變數的範圍,其中int型別是帶符號整數。

正數在計算機中表示為原碼,最高位為符號位:

1的原碼為0000 0000 0000 0000 0000 0000 0000 0001

2147483647的原碼為0111 1111 1111 1111 1111 1111 1111 1111

所以最大的正整數是2147483647

負數在計算機中表示為補碼,最高位為符號位:

-1:原碼為1000 0000 0000 0000 0000 0000 0000 0001,

反碼為1111 1111 1111 1111 1111 1111 1111 1110,

補碼為1111 1111 1111 1111 1111 1111 1111 1111

-2147483647:

原碼為1111 1111 1111 1111 1111 1111 1111 1111,

反碼為1000 0000 0000 0000 0000 0000 0000 0000,

補碼為1000 0000 0000 0000 0000 0000 0000 0001

所以最小的負數是-2147483647嗎?錯,不是。

在二進位制中,0有兩種表方法。

+0的原碼為0000 0000 0000 0000 0000 0000 0000 0000,

-0的原碼為1000 0000 0000 0000 0000 0000 0000 0000,

因為0只需要乙個,所以把-0拿來當做乙個最小的數-2147483648。

-2147483648的補碼表示為1000 0000 0000 0000 0000 0000 0000 0000,在32位沒有原碼。

注意,這個補碼並不是真正的補碼,真正的補碼是1 1000 0000 0000 0000 0000 0000 0000 0000,溢位。

所以帶符號32位int型別整數為-2147483648~2147483647

c語言int表示範圍以及移位運算子

剛剛看到的幾個小基礎知識,記錄一下 在int型為32位的硬體環境中,int的表示範圍是 2的31次方 到2的31次方減1 原因 因為int是帶符號型別,所以最高位為符號位,於是最大表示的正數是 01111111 11111111 11111111 11111111,也就是2的31次方減1。再來看最小...

16 32位數,表示範圍

xx位二進位制數,表示的數的範圍是多少呢,疑惑。16位無符號二進位制數能表示2 16個數,表示範圍是0 65535 而有符號16位二進位制,有1位符號位,表示範圍是 32768 32767。之所以是65535,是因為0也是一位,0 65535就是65536個了,即2 16 有符號就是有一位是符號位,...

C 基本資料型別大小及表示範圍

ansi c c 基本資料型別 type size 數值範圍 無值型void 0 byte 無值域布林型 bool 1 byte true false 有符號短整型 short int signed short int 2 byte 32768 32767 無符號短整型 unsigned short...