1樓:龍彩榮蓋衣
int型取值範圍為-32768~32767是針對int型佔2個位元組來說的。
下面具體說明該範圍的求法:
int型佔2個位元組,共16位。
int型能表示的最大正數為(最高位為符號位,正數的符號位為0):0111
1111
1111
1111
也即2^15-1=32767
int型能表示的最小負數為(最高位為符號位,負數的符號位為1):1000
0000
0000
0000(補碼),而在計算機中負數是利用補碼進行儲存的,所以將1000
0000
0000
0000轉換為原始碼就是1000
0000
0000
0000,也即-2^15=32768
所以int型取值範圍為-32768~32767
2樓:海獅
說實在的,不是在c語言中,在c語言中沒什麼特別的地方。
在計算機體系結構裡,可能引起人的誤解是真的。
對於乙個長度為16bit的有符號數,(32位、64位系統裡面一般是signed short int,16位系統裡面可以是signed short (早期版本int可以省略),或者unsigned),能夠表示的最大值和最小值。
其實超出了也不影響什麼,只是理解不同。
新版的編譯器可以用
int16_t,vc用__int16也可以看看下面的例子:
signed short x,y;
x=25000+10000;
y=x-5000;
printf("x=%d,y=%d\n",x,y);
y=30000是吧對嗎?
x的值呢?x=35000(同餘的符號不好打,就寫等號吧)=35000-65536 =-30536
其實這個就是「正確結果」,這個結果在做計算的時候就是這樣。
就好比你做數學題,6+7,如果做豎式,結果為3,進製為1。
這裡面一樣的,進製為1,結果-30536。
3樓:匿名使用者
2的15次方,long(int)型變數的取值範圍
4樓:聽不清啊
在16位的turbo c中是int 的最大值和最小值。
在32位的c編譯器中就是兩個普通的整數。
c語言中,基本整形,取值範圍-32768到32767什麼意思
5樓:匿名使用者
就是說如果你定義乙個整型變數,數值為32768,那麼就會出現執行錯誤,因為你賦的數值超過了它本身的最大數值,最小也是一樣的意思
6樓:匿名使用者
兩個位元組,16位,第一位為標誌位,所以最大應該是:01111111 11111111,用等比數列求和,2的0次方一直加到2的14次方,等於32767,32767+1變成-32768,因為加1變成10000000 00000000,明顯時負數,就是-32768的補碼形式,所以簡單整形只能在-32768-32767
7樓:匿名使用者
就是int型別的值只能在這個範圍,不在或不是都報錯
8樓:唯龍獨尊
整型4個位元組,每個位元組八位,所以:
無符號整型型 範圍-2^31到2^31-1 即-32768到32767
有符號整型 範圍0到2^32-1
c語言中,"整型"跟"短整型"的取值範圍都是 -32768~32767,請問兩者有什麼差別?
9樓:匿名使用者
現在的電腦基本都是32位機..
你用vs2005/2003的時候.建專案都會出現乙個32位控制台..
int已經從16位擴充套件到了32位..佔4個位元組..和long int一樣了..所以現在很少使用long int了.
而short int是16位元組..佔2個位元組..差別嘛..應該就是就是..所占用記憶體大小不同..還有..取值範圍不同..
別的沒啥區別了..
10樓:
c語言沒有具體規定各類資料所佔記憶體的位元組數,只要求long型資料長於int型,short型短於int 型,是由計算機系統自行決定,有的short和 int都是16位,long 是32位,有的short為16位,long和int都是32位,通常是long 為32位,short為16位,而int可以是16位,也可以是32位
這兩個都是用於儲存整數.短整型的二進位制位長是16,長整型的是32位.就是說長整型可以表示位數更多的整數.
短整型所能表示的整數的值域為-32768~32767,長整型則為-2147483648~2147483647.例如,如果有個數為32780,那麼它只能用長整型表示,而不能用短整型表示.
在c語言中為什麼int型的取值範圍是-32768~32767
11樓:天雲小店
int型取值範圍為-32768~32767是針對int型佔2個位元組來說的。
下面具體說明該範圍的求法:
int型佔2個位元組,共16位。
int型能表示的最大正數為(最高位為符號位,正數的符號位為0):0111 1111 1111 1111
也即2^15-1=32767
int型能表示的最小負數為(最高位為符號位,負數的符號位為1):1000 0000 0000 0000(補碼),而在計算機中負數是利用補碼進行儲存的,所以將1000 0000 0000 0000轉換為原始碼就是1000 0000 0000 0000,也即-2^15=32768
所以int型取值範圍為-32768~32767
12樓:
1樓的正解,因為有個0,其實你自己用2進製算一下就明白了
13樓:匿名使用者
範圍而已,沒什麼為什麼
為什麼c語言中的整型取值範圍是--32768~32767,是按什麼規則規定,推理的?
14樓:
int 4位元組 有符號時符號1位 數字最多15位 範圍為 2的15次方=32768 所以負數 -1到-32768 非負數0到32767
15樓:匿名使用者
整型的寬度是乙個字,也就是2個位元組,16個二進位制位,最高一位二進位制位用來表示符號(正或負),那麼剩下的15位來表示數值。
01111111 11111111是32767,最大的正整數
00000000 00000001是1
00000000 00000000是0
11111111 11111111是-1(不是-32767)
10000000 00000001是-32767(不是-1)
10000000 00000000是-32768(不是-0),最小的負整數
計算機表示數主要從運算方式的一致性來考慮。
比如00000000 00000001表示1很好理解,但是11111111 11111111為什麼是-1呢?
按照二進位制加法
11111111 11111111 + 00000000 00000001= 1 00000000 00000000
結果超出了整型的寬度,溢位部分被忽略,最後的計算機結果是00000000 00000000
那麼換成十進位制,?+1=0,所以11111111 11111111表示成十進位制就是-1
c語言中short整型資料的範圍「-32768——32767」中的「-32768」是如何確定的?
16樓:天雲小店
short 占用記憶體空間2個位元組,也就是16個二進位制位。
表示負數時,最高位為符號位(負數的符號位為1),最小的負數為1000 0000 0000 0000 ,但是在計算機中負數是用補碼(符號位不變,其餘位取反,然後加1)表示的,人們規定1000 0000 0000 0000的補碼為-32768 ,所以在補碼系統中最小的是-32768
表示正數時,最高位為符號位(正數的符號位為0),最大的正數為0111 1111 1111 1111 即2^15 - 1 = 32767
關於c語言中有符號的整數值範圍為什麼是從-32768~32767
17樓:任菊經秋
有符號整形變數int型的,在c語言裡面規定是用兩個位元組也就是16個二進位制位來表示的。最高為用來表示正負,後面還有15位數,於是一共可以表示2的15次方個數字,也就是32768個,但是呢,數字0是用的16個二進位制0表示的,所以正數只能到32767了,負數則是到-32768.這兩個數字就是這麼來的
18樓:圭若谷紅燕
首先:計算機中數值是用2進製表示的,也就是0和1計算機有16位和32位之分,但是現在普遍都是32位的了其次:在計算機中數值都是用補碼表示的,乙個正數的補碼是他本身,而負數的補碼就是按位取反加1
例如-10在2進製中的表示方法為:先求10的原碼1010對1010取反為0000
0000
0000
0101(整數為2位元組也就是16位)然後加1即1111
1111
1111
0110
我們現在來10
和-10在計算機中表示的對比:
10補碼/原碼:0000
0000
0000
1010
-10的補碼:
1111
1111
1111
0110
所以可以看出最左邊的一位也就是最高位代表這個數是正還是負0就是正1就是付
我剛才說在32位機中int型是兩個位元組也就是16位,那麼最小的負數是幾?是1000
0000
0000
0000
我說了最高位的代表正負
是不所以這個數是-2^15
那麼最大的正數怎麼表示?0111
1111
1111
1111
這個數表示成2^15
,可是這中間有乙個0000
0000
0000
0000
得把他摳出去。也就是2^15-1
在c語言中s ii 的區別,在C語言中s i 和s i i 的區別
用生活中的數學來講就是 第一種相當於 x 1 1 第二種相當於 x y 1 y 1兩種結果一樣,第二種不過是繞了個圈子,把結果賦值過去了希望能幫到你 沒有什麼不同啊!都是將i使用之後再加一,對於陣列元素s i 和s i 是相等的。s i 只是比 s i i 寫法上簡單一點,其實功能是一樣的。沒區別 ...
C語言中continue和break在退出迴圈時可以互換嗎
不可以!continue 是回到while 條件 這裡進行檢查是否條件還成立 如果成立繼續迴圈,如果不成立結束迴圈!break 是直接跳出迴圈體,結束迴圈了!不可以啊 break可以跳出迴圈體結束整個迴圈啦 不判斷執行迴圈的條件了 ercontinue一般為結束本次迴圈不是終止整個迴圈的 不可以,再...
在C語言中54d和5d區別C語言05d和5d有什麼不同啊?
d是輸出整形。5.4d。小數點前面的數字 5 是輸出的資料寬度,是左對齊輸出,不足5位的以空格輸出 小數點後面的數字 4 是指輸出資料小數點保留位數,四捨五入輸出。預設是輸出六位小數。5d也就是前面所述的情況,輸出資料寬度,比如 d輸出阿拉伯數字 1 佔乙個寬度,輸出時 1,5d輸出時 1,前面有四...