c語言中有符號型別的int範圍,C語言中 有符號型別的int範圍( 128 127)是怎麼求出來的,特別是 128 怎麼理解 負數用二進位制怎麼表示

2021-12-29 02:24:50 字數 5786 閱讀 2216

1樓:匿名使用者

恩!首先要指出你的一個錯誤!int的範圍不是(-128----127)這個是char的範圍,

範圍的大小是由型別所佔有的位元組來決定的。如此所示:char是一個位元組8bit,那麼在二進位制中,8bit最大值是255,最小值是0(在是在無符號時)如果是有符號的話.

那麼就還有一位是符號為,最高位是符號為。例如:1111 1111:

如果是有符號的char資料那麼這個數的-1;最高是符號位,如果是1,就是負數,如果是0是正數。

0111 1111 就是+127;

那麼1111 1111 怎麼理解是-1嗯!在數電中提到,對於一個負數要用它的反碼來表示。

如:1111 1111 的反碼是1000 0001.怎麼的來呢!?

首先,我們要得到-1的值,那麼第一步是的好1000 0001,最高位1是符號位,最後一個1是數值位。但是在機器中我們要用反碼來表示此值。那麼就要求他的反碼。

反碼的求法是符號位不變。數值位取反加一。

取反後是結果是:1111 1110

再加一的結果是:1111 1111

如果是1,那麼1 的8位表示是0000 0001

解釋的很少!你可以自己看看,如果不懂可以在聊!

2樓:狼塗騰

負數用c語言表示就是資料在轉化成2進位制以後最高位不代表資料內容,二代表資料的符號,比如01111111就表示+127,11111111是-128的補碼,補碼和原始碼的關係可以參見這個提問http://zhidao.baidu.

希望對你有幫助

3樓:

二進位制 0000 0000 表示0

有符號數int 會將第八位作為符號位 1表示複數 0表示正數0 000 0001 表示 1

1 000 0001 表示-1

但c語言中不同 用的是二進位制補碼方式

1 111 1111 表示-1

1 000 0001 表示-127

4樓:傷透腦筋的小蜜蜂

in範圍-32768~32767,

char範圍-128~127;

char佔以位元組,最小值1111 1111(補碼)換算成原碼就是-128,最大值0111 1111(同樣是補碼)

最高位是符號位

5樓:匿名使用者

int怎麼會只佔1個位元組啊 = = 這不是變char型別了嗎

c語言中 int char uint uchar 的取值範圍都是多少

6樓:匿名使用者

#define uchar unsigned char

#define uint unsigned int

其中:uint資料型別佔兩位元組, 取值範圍是-32768~32767。

uchar資料型別佔一位元組, 取值範圍是‐128~127。

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言制定了一套完整的美國國家標準語法,稱為ansi c,作為c語言最初的標準。[1]  目前2023年12月8日,國際標準化組織(iso)和國際電工委員會(iec)釋出的c11標準是c語言的第三個官方標準,也是c語言的最新標準,該標準更好的支援了漢字函式名和漢字識別符號,一定程度上實現了漢字程式設計。

7樓:匿名使用者

char佔一個位元組,也就是8個二進位制位,但它表示的是有符號的型別,所以表示的範圍是

-128~127

uchar表示無符號的型別,所以表示的範圍是0~255int佔4個位元組,32位二進位制位,它表示有符號的整數,表示的範圍是-2^31~2^31-1

uint表示無符號的整數,表示的範圍是0~2^32-1

c語言中,int是什麼意思?

8樓:歐鏡雲的寶寶

int是c語言基本資料型別之一,是整型的意思。

c語言中,有多種不同的資料型別,分為四大型別:基本型別、構造型別、指標型別、空型別。

其中整型變數包括下面幾種型別:

1、有符號基本整型,關鍵字:[signed] int,數值範圍:-2 147 483 648 ~ 2 147 483 647,位元組:4

2、無符號基本整型,關鍵字:unsigned [int],數值範圍:0 ~ 4 294 967 295,位元組:4

3、有符號短整型,關鍵字:[signed] short [int],數值範圍:-32768 ~ 32767,位元組:2

4、無符號短整型,關鍵字:unsigned long [int],數值範圍:0 ~ 65535,位元組:2

5、有符號長整型,關鍵字:[signed] long [int],數值範圍:-2 147 483 648 ~ 2 147 483 647,位元組:4

6、無符號長整型,關鍵字:unsigned long [int],數值範圍:0 ~ 4 294 967 295,位元組:4

9樓:浩雄王

c/c++程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執行環境大小不同。

在32/64位系統中都是32位,範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

matlab中

int用於符號∫

int(s)符號表示式s的不定積分.

int(s,v)符號表示式s關於變數v的不定積分.

int(s,a,b)符號表示式s的定積分, a,b分別為積分的下限和上限.

int(s,v,a,b)符號表示式s關於變數v從 a到b的定積分.

當int求不出符號解,會自動轉求數值解。

10樓:飲水思春

以上回答皆屬扯談,鑑定完畢。

int是c的關鍵字,代表整型數類。

int a;//宣告a為整型變數,int不是,(1樓的錯誤)只有整型變數和整型常數,沒有整數。(2樓的錯誤)應該是整型變數的取值範圍32768 ~ +32767(16位)-2147483648~2147483647(32位) (3樓更嚴重。)

11樓:匿名使用者

int是「整數型別」,表示是一個整數型別變數,它的取值範圍是:

16位平臺是 -32768~32767

32位平臺是 -2147483648~2147483647

12樓:匿名使用者

你放棄c語言吧,這種問題就跟你問英語hello是什麼意思一樣

13樓:匿名使用者

樓上的哥真強,謝謝你啦!

最近又看了一下int是什麼意思,現在才想起來,自己是學程式設計的,竟然連int是什麼都忘記了,我真是不應該啊!

再次感謝樓上!

14樓:彭邵偉

整型變數 就是整數 範圍在-32767——+32767 超過這範圍就是long 即長整型-2147483647——2147483647 再就是超長整型longlong

c語言int的取值範圍

15樓:天雲一號

c語言中int的取值範圍為:-2147483648 ~ 2147483647

解釋如下:

int型別在c語言中佔4個位元組,即32個二進位制位。

當表示正數時,最高位為符號位(符號位為0),最大的正數是 0111 1111 1111 1111 1111 1111 1111 1111 即2^31 -1 = 2147483647

當表示負數時,最高位為符號位(符號位為1),最小的負數是 1000 0000 0000 0000 0000 0000 0000 0000 而在計算機中是以補碼的形式儲存的,c語言規定 1000 0000 0000 0000 0000 0000 0000 0000 的補碼為-2147483648

所以c語言中int的取值範圍為:-2147483648 ~ 2147483647

16樓:枕邊吹風會

c語言int的取值範圍在32/64位系統中都是32位,範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

c/c++程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執行環境大小不同。

c的資料型別包括:整型、字元型、實型或浮點型(單精度和雙精度)、列舉型別、陣列型別、結構體型別、共用體型別、指標型別和空型別。

基本資料型別:

void:宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。(c89標準新增)

char:字元型型別資料,屬於整型資料的一種。(k&r時期引入)

int:整型資料,表示範圍通常為編譯器指定的記憶體位元組長。(k&r時期引入)

float:單精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

double:雙精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

_bool:布林型(c99標準新增)

_complex:複數的基本型別(c99標準新增)

_imaginary:虛數,與複數基本型別相似,沒有實部的純虛數(c99標準新增)

_generic:提供過載的介面入口(c11標準新增)

17樓:匿名使用者

二進位制數在計算機記憶體儲的是其補碼

對於有符號數,正數的補碼和本身一樣,負數的補碼是本身的數字位取反後加1

比如:1=(0001)補=(0001)

-1=(1001)補=(1111)

計算機儲存-1就是儲存的1111

因此當int表示範圍為16位時,可以表示的最大負數為:

10000...0000(後面有15個0)相當於-0

但這其實是-32768=110000...0000(第一位符號位,後面有15個0)的補碼錶示

可以理解為16位的int足可以表示-32768的補碼

18樓:匿名使用者

正數範圍是0000 0000 0000 0001到0111 1111 1111 1111應該都理解。

負數範圍要了解計算機內部表示負數的方法,「2的補碼」,具體方法分兩步:

第一步,每一個二進位制位都取相反值,0變成1,1變成0。

第二步,將上一步得到的值加1。

比如要表示16位的-1,就把+1也就是0000 0000 0000 0001取反變為1111 1111 1111 1110,再+1,所以1111 1111 1111 1111表示-1。

那麼要知道計算機表示的一個負數的絕對值就要把這個負數按照上面所說的「2的補碼」規則反處理。所以16位能表示的最小負數,也就是符號位為1,其餘全部為0,即1000 0000 0000 0000。

(這裡比較難理解為什麼確定符號為1,後面要全部取0,主要是為了經過反處理後得到一個儘量大的數值,也就是最左邊位置2^15位上的值為1,這樣才能得到最小的負數。)

第一步,1000 0000 0000 0000(處理時,這是一個二進位制數值,1不再是符號) 減去1得到 0111 1111 1111 1111。

第二步,取反,變為1000 0000 0000 0000,即1*2^15,32768。

所以最小是1000 0000 0000 0000,-32768。

C語言中有乘方符號嗎,C語言中沒有乘方符號嗎?

沒有,但有乘bai方函式,c語言du是高效率 高速 zhi簡潔風格的語言dao,基本語法中不允許有冗餘 回低效的成份 乘方的功答能就是用標準函式庫實現 include math.h double y pow m,n m的n次方 c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以...

在c語言中 如果下面的變數都是int型別 則輸出的結果是

輸出結果是為7 1.pad sum 先將sum 此時為5 賦值給pad 此時sum的值,賦值給pad,pad也為5 再進行sum 操作。2.pad 該 直接執行,結束後,pad由5 1操作,變為6。3.pad,pad直接操作 動作,6 1,結果pad為7,該 執行結束。4.printf列印出7 su...

在c語言中int型別的陣列能夠用來存放字串嗎說

當然是可以的。不管是什麼樣的陣列,它在記憶體裡面都是一個位元組一個位元組儲存的。只不過,型別不同的話,取的時候取的位元組數不一樣。如果對於同一記憶體地址 void addr 0x12345678 進行下面不同的操作 char ch char addr 就從0x12345678取1個位元組 int i...