設c語言中int型資料再記憶體中佔兩個位元組則

2021-03-12 09:31:44 字數 5655 閱讀 3720

1樓:匿名使用者

如果一個int佔兩個位元組就是16位

unsigned int 範圍是 00000000 00000000 到 11111111 11111111

因此是0到65535

2樓:冰夢雪痕

int佔2個位元組,就是16位,則int型的變數值的範圍為-2^15 ~ (2^15 - 1), 即-32768~32767

unsigned int取值範圍0~(2^16 - 1), 即0~65535

3樓:匿名使用者

int 再內bai

存佔多少位元組和編譯du器有關,一般情況是zhi4位元組而不dao是2位元組,檢視方式sizeof(int),

unsigned int取值專

範圍是屬0到2^32,若int位2位元組則範圍是unsigned int取值範圍是0到2^16,原因 :unsigned int是無符號的,最高位是資料位,共16bit,故0到2^16

4樓:匿名使用者

0~65535。

也就是0x 00 00到0x ff ff。

後者就是ff ff = 65535。

無符號整型的區別在於它的最高位不是符號位。

設c語言中,一個int型資料在記憶體中佔2個位元組,則unsigned int型資料的取值範圍為

5樓:匿名使用者

最大值就是 16個二進位制1(1111111111111111)轉換為十進位制 的數值,也就是65535

最小值就是 0

範圍就是 : 0 ~ 65535

6樓:麒麟也涅槃

0~2的16次方減1,一個位元組8位,兩個16位

7樓:孑然一生流浪

int 佔2個位元組(16位)範圍抄為:-32768~32767long int 佔4個位元組(32位)範圍為-2的31次~2的31次減1;

short int 佔2個位元組

unsigned int佔2個位元組範圍為:0~65535(即2的16次減1)

具體為什麼是這麼分的你可以去看《計算機組成原理》其中有詳細的介紹說明

8樓:喔彌頭髮

0~65535。對於有符號數bai,儲存單du

元中最高位代表符號(zhi0為正,dao1為負)。如果一個回

整型變數被指定為無符號答整型,則儲存單元中全部二進位制位用做存放數本身,而不包括符號。一個無符號整型變數中可以存放的整數範圍比有符號整型變數中的正數範圍擴大一倍。

9樓:匿名使用者

想學c語言,找個高手,追著問他吧,c是很基礎的,關鍵你的有耐心,有本書不錯,清華大學譚浩強的

10樓:匿名使用者

0 ~ 4294967295

c語言基本整型的資料範圍什麼意思

11樓:匿名使用者

基本整型變數,所佔位元組數為2,每個位元組等於八位二進位制數,可以用0和1表示的八位二進位制數,2個位元組也就是16位二進位制。

最高位表示正負,所以用0和1組成的16位數字範圍為-2的15次方~2的15次方,也就是-32768~32767。因此基本整型變數資料範圍是-32768~32767。

12樓:匿名使用者

int佔4個位元組,一個位元組4位,則它的空間有2的16次方byte,若有unsigned修飾,則說明它是無符號整型資料,它的範圍為0~65535,若沒有unsigned修飾,則說明最高位為符號位,它的範圍為-32768~32767

對於無符號數,比較簡單,根據佔用的位數可以直接計算:

unsigned short     16位      0~2的16次方-1(即65535)

unsigned int         16位      0~2的16次方-1(即65535)

unsigned long      32位      0~2的32次方-1(即4294967295)

對於有符號數,由於符號位佔用一位,並且負數要用補碼錶示。

以8位資料為例:2進位制的11111111表示-1,10000000表示-128,所以負數範圍-128~-1;2進位制00000000表示0,01111111表示127,所以正數範圍0~127。合起來就是-128~127,找一下規律發現是- 2的(8-1)次方~2的(8-1)次方-1,那麼就可以得到任何位數的範圍:

short     16位      - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)

int         16位      - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)

long      32位      - 2的(32-1)次方~2的(32-1)次方-1(即-2147483648~2147483648)

擴充套件資料:

(1)char:字元型資料,屬於整型資料的一種,佔用一個位元組

(2)unsigned char:無符號字元型資料,屬於整型資料的一種,佔用一個位元組

(3)short:短整型資料,屬於整型資料的一種,佔用兩個位元組

(4)unsigned short:無符號短整型資料,屬於整形資料的一種,佔用兩個位元組

(5)int:整形資料,屬於整型資料的一種,佔用四個位元組

(6)unsigned int:無符號整型資料,屬於整型資料的一種,佔用四個位元組

(7)long:長整型資料,屬於整型資料的一種,佔用四個位元組

(8)unsigned long:無符號長整型資料,屬於整形資料的一種,佔用四個位元組

實 型 變 量 的 類 型 有 float和 double兩 種 ,下 表 列 出 這 兩 種 型別所 佔 內 存 的 位數 和 其 表 示 範 圍 。資料型別 所佔位數 數的範圍:

float 32 3.4e-038~3.4e+038

double 64 1.7e-308~1.7e+308

雙 精 度 類 型 double比 單 精 度 類 型 float具 有 更 高 的 精 度 和更大 的 表 示 範 圍 ,常 常 使 用 。

13樓:薔祀

整型變數int佔4個位元組,一個位元組4位,則它的空間有2的16次方byte,若有unsigned修飾,則說明它是無符號整型資料,它的範圍為0~65535。若沒有unsigned修飾,則說明最高位為符號位,它的範圍為-32768~32767。

int是資料庫中一種資料型別,同時,作為函式,int函式指資料庫中常用函式中的「向下取整函式」。常用來取一個數中的整數部分。int是將一個數值向下取整為最接近的整數的函式。

為取整函式。

擴充套件資料

c語言中其他資料的取值範圍:

①短整型:

型別說明符為short int或short'c110f1。所佔位元組和取值範圍會因不同的編譯系統而有差異。對於16字機,short int 佔2個位元組,在大多數的32位機中,short int 佔4個位元組。

但總的來說,short int 至少16位,也就是2個位元組。

②長整型:

型別說明符為long int或long ,在記憶體中佔4個位元組,其取值為長整常數。在任何的編譯系統中,長整型都是佔4個位元組。在一般情況下,其所佔的位元組數和取值範圍與基本型相同。

③無符號型:

型別說明符為unsigned。在編譯系統中,系統會區分有符號數和無符號數,區分的根據是如何解釋位元組中的最高位,如果最高位被解釋為資料位,則整型資料則表示為無符號數。

14樓:匿名使用者

1 位元組 = 8位

int型 2位元組 = 16位

按vc++和c++的規定,int和long等長,都是32位的。short才是16位的。只有原始的c才定義int和short等長為16位。

這個資料範圍指的確實是具體 int的取值範圍,但不是你理解的那樣。

現在以16位的short為例。

首先必須清楚一個概念,計算機中存放的資料都是以二進位制形式存放的。short存放的是整型資料,是用固定位數16個二進位制位來表示一個整數,不足16位補0。

比如125的二進位制是1111101,那麼在記憶體中存放就是

0000 0000 0111 1101

那麼16個二進位制位能夠表示多少種不同的整數呢?稍微用點數學常識就知道,是2的16次方,也就是65536個不同的整數。所以對於無符號整數,unsigned short的範圍就是0~65535。

而為了表示負數,計算機用short的第一位作為符號位來表示正負。注意,計算機中是以補碼的形式存放整數的。對於正數,補碼是其本身;對於負數,其補碼是對其絕對值的按位取反,再加1的結果。

舉個簡單的例子:

125是0000 0000 0111 1101

-125計算過程:

125是0000 0000 0111 1101

按位取反,1111 1111 1000 0010

再加1,1111 1111 1000 0011

所以-125就是1111 1111 1000 0011。

補碼不是三言兩語能講得清楚的,樓主有個概念即可。

我們發現,正數的補碼首位都是0,負數的補碼首位都是1。

short有符號型的範圍是-32768~32767。

那麼,如果超出了範圍,會發生什麼現象呢?

很簡單,這稱為溢位。

比如short a = 32768

32768是1000 0000 0000 0000。還記得我講過嗎?正數的補碼首位都是0,但這裡首位為1,這是怎麼回事呢?

其實因為浪費了1位做符號位,short的有效位數只是15位而已,而2的15次方是32768,因此正數的範圍是0~32767,32768超出了範圍,計算機怎麼處理呢?結果就是把它當作負數,根據補碼計算它的原碼。反過來即可

1000 0000 0000 0000 減1,

0111 1111 1111 1111 再按位取反,

1000 0000 0000 0000 就是32768

所以1000 0000 0000 0000表示-32768

也就是說short a = 32768;把a輸出來得到-32768樓主可以試驗一下。

再舉一例:

unsigned short a=65536;

65536是1 0000 0000 0000 0000 注意這已經是17位了。計算機會自動擷取後面的16位

就是得到0000 0000 0000 0000,也就是0

所以unsigned short a=65536;輸出a得到0。

明白了嗎?

15樓:聽不清啊

對於無符號數,根據佔用的位數可以直接計算:

unsigned short 16位 0~2的16次方-1(即65535)

unsigned int 16位 0~2的16次方-1(即65535)

unsigned long 32位 0~2的32次方-1(即4294967295)

對於有符號數,由於0也佔用一個位置,導致負數的邊界值與正數的邊界值不一樣:

short 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)

int 16位 - 2的(16-1)次方~2的(16-1)次方-1(即-32768~32767)

long 32位 - 2的(32-1)次方~2的(32-1)次方-1(即-2147483648~2147483647)

C語言中char型和int型資料是以(原碼,反碼,補碼,ASCLL碼)形式儲存的,最好順便說說別的

char型是以ascii碼儲存的 對於int型資料 正數是用原碼,負數是用補碼 c語言中 char與int有什麼區別?c語言中 char 與 int 具體區別如下 1 表示的變數型別不同 char 是字元變數,而 int 是整型變數。2 申請的型別資料不同 char 用來申請字元和字串或者字串指標 ...

c語言中我把int型資料賦給char型如

int a char b a 24 b a 沒有問題,編譯的時候會有warning 但是要注意char int 的數值範圍 a 3.2 賦值後,a的值將變成3 浮點型專轉為整型,小數屬部分會被舍掉 int和char是相通的,兩者之間可相互賦值,按上述 b對應的是一個控制字元cancel 如果把浮點型...

c語言中float型轉換成int型是什麼規則

1 c語言整型使用原碼 反碼 補碼進行編碼,而浮點型使用ieee754進行編碼,所以強制轉換基本上是沒有任何意思的,因為編碼格式不一樣。2 正確的作法是使用c語言標準庫中的floor和ceil函式來進行向下或者向上取整。比如 include include int main 結果 up 2 down...