c語言中無符號字元型,這個無符號 unsigned 到底什麼

2021-04-08 23:57:57 字數 3595 閱讀 7997

1樓:津人依夢聊理財

c語言中無符號字元型其實就是是長度為1個位元組的整數,從本質上說也是整數型別,通常用來存放ascii碼。

整型分為無符號(unsigned)和有符號(signed)兩種型別,預設整型變數是有符號的型別,char有點特別。需宣告無符號型別就要在型別前加上unsigned。

無符號整型和有符號整型的區別在於無符號型別可以存放的正數範圍比有符號整型中的範圍大一倍,因為有符號型別將最高位儲存符號,而無符號型別全都儲存數字。

在16位系統中乙個int能儲存資料的範圍是-32768~32767,unsigned能儲存的資料範圍是0~65535。

擴充套件資料

整型分類:

基本型型別說明符為int,在記憶體中佔4個位元組(不同系統可能有差異,此處原為2,經查證windows系統下為4,vax系統也如此) ,其取值為基本整常數。

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

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

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

無符號型

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

第2章 c++簡單程式設計  2.2 基本資料型和表示式

2樓:匿名使用者

無符號整數,計算機裡的數是用二進位制表示的,最左邊的這一位用來表示這個數是正數還是負數,這樣的話這個數就是有符號整數。

如果最左邊這一位不用來表示正負,而是和後面的連在一起表示整數,那麼就不能區分這個數是正還是負,就只能是正數,這就是無符號整數。

擴充套件資料

有符號和無符號的差別

int是有符號的,unsigned是無符號的。

它們所佔的位元組數其實是一樣的,但是有符號的需要安排乙個位置來表達我這個數值的符號,因此說它能表示的絕對值就要比無符號的少一半。

舉個例子:有乙個1個1位元組的整數,那麼無符號的就是:「00000000~11111111 」這個就是無符號的範圍。

乙個位元組是8位, 有符號的數,因為第乙個位要用來表示符號,那麼就只剩下7個位置可以用來表示數了0000000~1111111。

因為有符號,所以還可以表示範圍:-1111 111~+1111 111。

3樓:

乙個字元型,佔8位 ,例如 ******xx 最高位沒有符號之別,也就是最高位不是符號位 ,最大的值也就是8個1 為255 。

4樓:匿名使用者

字元型就是8位長整數,若是無符號字元型,就只能表示0~255之間的正整數。有符號的整型,能表示-128~127之間的正整數和負整數。ascii字元可以用乙個字元型表示

5樓:匿名使用者

如果你要設定的變數不是負數的時候才會用,如char的值在-128~127之間,

unsigned char的值在0~255之間

6樓:匿名使用者

在c語言中,

baichar本質就是du乙個數字

,而且並zhi沒有規定那個數dao字代表哪個字元,只是內一般都容是使用ascll編碼,所以 65表示『a』,如果拋開ascll編碼,unsigned char和unsigned int的表示的形式是一致的,char和int只是在分配空間和解析內容的時候才用得上。

7樓:匿名使用者

字元型變數是1個8位二進位制,無符號字元型就是0~255,有符號是-128~127

8樓:苦孩子

就是沒有符號唄,也就是說沒正負之分。。。。。

例如:int 型別 可以取正負值

但如果你定義了 unsigned int 則只能取正值 不能取負值否則編譯時就會報錯!

9樓:金色潛鳥

c語言中 乙個儲存單元 按二進位制數字 可以分 符號位 和 資料位,資料位 也許分專 指數字屬,尾數字,到底乙個儲存單元,有多少位,有哪些位,取決於 變數型別宣告。

unsigned char 型別宣告 說,長度 是 1個位元組,(也就是 8 位 二進位制數字),無符號位,8 位都是數值位。

所以 unsigned char 數值範圍 是 0000 0000 到 1111 1111, 寫成 10 進製 是 0 到 255。

無符號字元型 實際上 是 1個位元組 無符號整型。可以用來描述 ascii 字元 編碼 0 到 255。

10樓:匿名使用者

字元型是8位整數copy,若是無符號字元型,就只能表示0~255之間的正整數。

有符號的字元型,能表示-128~127之間的正整數和負整數。

所謂字元型簡單點說就是8位整數

以前用字元型來表示ascii字元

無符號的則擴充套件到了255,可以用來表示擴充套件ascii

c語言中無符號型別是什麼意思啊?

11樓:天雲一號

無符號型別

bai就是不表示負數,只du表zhi示正數的資料型別。

通常在數dao據型別關鍵字版前加unsigned。權無符號的資料型別主要有以下幾類:

unsigned char // 無符號字元型 ,能表示的數的範圍為0~(2^8-1)

unsigned int // 無符號整型 ,能表示的數的範圍為0~(2^16-1)

unsigned long int // 無符號長型 ,能表示的數的範圍為0~(2^16-1)

12樓:匿名使用者

無符號型別 顧名思義就是不考慮符號在內的資料型別

只有正沒有負

13樓:匿名使用者

無符號不會單獨出來現的。就像你說的

自unsigned long它的意思是無符bai號的長整形資料。比du如:zhi12345657898但有符號的就不一樣了,dao比如:

-12232156,注意前面的負號,這就是它們之間的區別

14樓:匿名使用者

要想使用復比一般的整數

制型別更大的正整數,可以考慮無符號型別。無符號型別提供了一種有用的緩衝,來儲存可能略微超出取值範圍的結果,但那不是它們存在的主要原因。uint16與character型別有相同的特徵,而uint32與32位系統上的記憶體指標有相同的特徵。

但不要編寫試圖利用這種關係的**。這種**是不能移植的,因為在64位系統上,系統記憶體指標會改而使用uint64型別。但在需要使用較大的整數,且已知所有的值都是正數時,就可以使用無符號型別。

這些型別還有一種低階用法:某些低階驅動程式使用該型別與需要這些值的軟體互動操作,這些型別是其他值型別的底層實現方式。因此,在從32位系統移植到64位系統時,裝置需要新的驅動程式,應用程式不應使用相同型別的邏輯。

c語言無符號整數怎麼定義,c語言中定義無符號整型變數有什麼作用

需要準備的bai 材料分別有du 電腦 c語言編譯器。1 首先,zhi 開啟daoc語言編譯器,版新建乙個初始.cpp檔案,例如 權test.cpp。2 在test.cpp檔案中,輸入c語言 unsigned int a 1024 printf u a 3 編譯器執行test.cpp檔案,此時成功定...

c語言無符號整型的輸出C語言無符號整型的輸出

b.不過個人覺得這題沒答案才對。平台都沒說,怎麼會有準確答案呢?vc6.0肯定不是這個答案,它的int是32位的。如果這題的int是16位的那麼就選b。解釋 1在記憶體中是以補碼形式儲存的。補碼的二進位制為 1111 1111 1111 1111 這個數按照無符號數輸出 也就是0xffff 也就是6...

C語言裡面無符號數怎麼理解,c語言無符號整數怎麼定義

你可以把它理解為非負數,一般情況情況下的數有正數和負數之分的,就是所謂的有符號,而無符號數,只有正數,就像絕對值一樣,例如正常情況下,int 型別的數占用兩個位元組的記憶體,也就是16位,也就是所有的數中,有2的8次方個是負數,0佔乙個,2的7次方減1個是正數 但是在無符號的情況下,2的16次方個數...