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

2021-08-16 12:10:35 字數 5739 閱讀 4148

1樓:豆豆愛上天使

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

2樓:

是不是 unsign int a;?

可以這樣來理解 b=-1;

a=ba=二進位制(11111111)=255及把最左邊的符號位也變為數值中了

3樓:迷惘中的東王

就是沒有正負號,在以2進製儲存時第一位不需要表示符號

4樓:

在c語言中,數值是以補碼表示的:

正數的補碼和原碼相同;

負數的補碼:將該數的絕對值的二進位制形式按位取反再加1。

例如:求-10的補碼:

10的原碼:

0000 0000 0000 1010

取反:1111 1111 1111 0101再加1,得-10的補碼:

1111 1111 1111 0110

左面的第一位是表示符號的,正數為0,負數為1。

無符號型又可與三種型別匹配而構成:

無符號基本型:型別說明符為unsigned int或unsigned。

無符號短整型:型別說明符為unsigned short。

無符號長整型:型別說明符為unsigned long。

各種無符號型別量所佔的記憶體空間位元組數與相應的有符號型別量相同。但由於省去了符號位,故不能表示負數。

有符號整型變數int:最大表示32767

0111 1111 1111 1111

無符號整型變數unsigned:最大表示655351111 1111 1111 1111

c語言無符號整數怎麼定義

5樓:幻翼高達

需要準備的bai

材料分別有du:電腦、c語言編譯器。

1、首先,zhi

開啟daoc語言編譯器,

版新建乙個初始.cpp檔案,例如:權test.cpp。

2、在test.cpp檔案中,輸入c語言**:unsigned int a = 1024;printf("%u", a);。

3、編譯器執行test.cpp檔案,此時成功定義了無符號整數並進行了輸出。

6樓:匿名使用者

整形變數的bai分類:du

基本整形:

int短整zhi形:short int

長整形:long int

對以上三類加dao

上修回飾符unsigned以指定是「無答符號數」。如果加上修飾符singed,則指定的是「有符號數」,如果既不指定為signed也不指定是unsigned,則隱含為有符號(singed)。

7樓:匿名使用者

看任何一本c語言的教材。只看變數定義那部分你就知道。

用unsigned i;或者unsigned int i;的語句就可以定乙個正整數。但不知道你是否表達這個意思

8樓:匿名使用者

unsigned int i;

9樓:匿名使用者

unsigned int a;

unsigned long int b;

unsigned c;/*等價於unsigned int c*/

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

10樓:天雲一號

無符號型別

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

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

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

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

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

11樓:匿名使用者

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

只有正沒有負

12樓:匿名使用者

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

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

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

13樓:匿名使用者

要想使用復比一般的整數

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

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

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

c語言中無符號字元型,這個無符號(unsigned)到底什麼意思啊

14樓:津人依夢聊理財

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 基本資料型和表示式

15樓:匿名使用者

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

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

擴充套件資料

有符號和無符號的差別

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

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

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

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

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

16樓:

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

17樓:匿名使用者

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

18樓:匿名使用者

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

unsigned char的值在0~255之間

19樓:匿名使用者

在c語言中,

baichar本質就是du乙個數字

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

20樓:匿名使用者

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

21樓:苦孩子

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

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

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

22樓:金色潛鳥

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

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

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

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

23樓:匿名使用者

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

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

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

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

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

c語言中,什麼叫無符號整型數?

24樓:

c語言中,無符號整型數是不帶正負表示符號的整型數。c語言在計算機裡編譯時數都是用二進位制表示的,如果最左邊這一位不用來表示正負,而是和後面的連在一起表示整數,那麼就不能區分這個數是正還是負,就只能是正數,這就是無符號整型數。

無符號整型數常用於表示位址、索引等正整數,它們可以是8位、16位、32位、64位甚至更多。在一些不可能取值為負數的時候,可以使用無符號整型數,在一些底層的嵌入式程式設計的資料一般都是無符號的。

怎麼理解c語言中 a p的意思,怎麼理解C語言中 a p m 的意思

a p1 m 意思就是 如果指標p1 是指向m所在的記憶體,那麼a 1 否則 a 0就是先判斷倆指標是不是相等,然後賦值給a 優先運算。如果p的值等於m的位址,a 1,否則a 0 相當於表示式a p m?1 0 它是個判斷加賦值的語句。若p1 m值為真,a 1,反之a 0 這句話可以這樣表達,更加清...

c語言這段是什麼意思,C語言裡面,這個符號是什麼意思呢,怎麼用呢

迴圈三次 將iarr2的每個元素,均自加一次.ps iarr2只有三個元素,所以i從0到2,自加了每個元素.c語言裡面,這個符號 是什麼意思呢,怎麼用呢?這是結構體指標中的乙個符號,給你寫個程式解釋一下吧,例如 include struct stu 定義乙個結構體 stu int main 看到了吧...

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檔案,此時成功定...