c中的sign和unsigned到底什麼意思作用是什麼

時間 2021-09-02 02:39:47

1樓:孤鬆獨海

signed是指的有符號 即有負數 ,unsigned是無符號的 即沒有負數

signed是預設的 顯示指定unsigned 為了擴大型別範圍即int型別大小範圍是-32768——32767而unsigned int 是0 - 65535 32767+32768

用這個是針對 需要範圍特別大的正數,單純int不夠大

2樓:匿名使用者

如果你的int是32位,那麼signed就是有符號數,也是預設的int型別,這32位的最高位用來表示符號,0正1負,如果是unsinged的話表示是無符號數,就沒有所謂的符號位了,就可以比符號數表示的正數大一倍。

3樓:小窩

在計算機中,可以區分正負的型別,稱為有符型別(signed);無正負的型別(只有正值),稱為無符號型別 (unsigned)。數值型別分為整型或實型,其中整型又分為無符型別或有符型別,而實型則只有有符號型別。 字元型別也分為有符和無符型別。

比如有兩個量,年齡和庫存,我們可以定前者為無符的字元型別,後者定為有符的整數型別。

c++中 unsigned是什麼意思?

4樓:匿名使用者

無符號數,作用為儲存的資料範圍大

unsigned char是無符號位元組型,char型別變數的大小通常為1個位元組(1位元組=8個位),且屬於整型。整型的每一種都有無符號(unsigned)和有符號(signed)兩種型別(float和double總是帶符號的),在預設情況下宣告的整型變數都是有符號的型別(char有點特別),如果需宣告無符號型別的話就需要在型別前加上unsigned。無符號版本和有符號版本的區別就是無符號型別能儲存2倍於有符號型別的資料,比如16位系統中一個int能儲存的資料的範圍為-32768~32767,而unsigned能儲存的資料範圍則是0~65535。

malloc函式是分配記憶體空間函式,引數是待分配的型別在記憶體中所佔的位元組數

例如,二進位制數 1000 0001

有符號術是-1,無符號數是129.就是第一位為1時,無符號數把它當數位,而有符號數把他當負號

c++中 unsigned是什麼意思 有什麼作用

5樓:千鋒教育

無符號數,作用為儲存的資料範圍大

unsigned char是無符號位元組型,char型別變數的大小通常為1個位元組(1位元組=8個位),且屬於整型。整型的每一種都有無符號(unsigned)和有符號(signed)兩種型別(float和double總是帶符號的),在預設情況下宣告的整型變數都是有符號的型別(char有點特別),如果需宣告無符號型別的話就需要在型別前加上unsigned。無符號版本和有符號版本的區別就是無符號型別能儲存2倍於有符號型別的資料,比如16位系統中一個int能儲存的資料的範圍為-32768~32767,而unsigned能儲存的資料範圍則是0~65535。

malloc函式是分配記憶體空間函式,引數是待分配的型別在記憶體中所佔的位元組數

例如,二進位制數 1000 0001

有符號術是-1,無符號數是129.就是第一位為1時,無符號數把它當數位,而有符號數把他當負號

6樓:梅秀雲焉嫻

signed是指的有符號

即有負數

,unsigned是無符號的

即沒有負數

signed是預設的

顯示指定unsigned

為了擴大型別範圍

即int型別大小範圍是-32768——32767而unsigned

int是0

-65535

32767+32768

用這個是針對

需要範圍特別大的正數,單純int不夠大。

整型變數unsigned即unsignedint,在turbo

c長度為16(即0~65535),在visualc++長度為32。所以在turbo

c中輸出0,在visual

c++中輸出65536。

7樓:匿名使用者

是變數的一個修飾符,是無符號的意思

比方說int是整形,那麼你定義的資料可以是-1 -100 -1000 1 2 300等等

如果你你加上unsigned int 定義還是這些數等同於int但是如果你加上signed的話,就是有符號限制的了,只能是1,2,1000等有符號限制的了

8樓:匿名使用者

就是未標誌,即沒有負數表示

9樓:匿名使用者

unsigned 是無符號修飾符, 可以修飾 int, char, long, short 如:unsigned int i;申明瞭一個無符號整型變數。

c語言中unsigned和signed在宣告時有什麼作用

10樓:亦木靜汐

^1、unsigned的作用就是將數字型別無符號化, 例如 int 型的範圍:-2^31 ~ 2^31 - 1,而unsigned int的範圍:0 ~ 2^32。

看起來unsigned 是個不錯的型別,尤其是用在自增或者沒有負數的情況。但是在實際使用中會出現一些意外的情況。

2、signed在預設情況下宣告的整型變數都是有符號的型別(char有點特別),如果需宣告無符號型別的話就需要在型別前加上unsigned。無符號版本和有符號版本的區別就是無符號型別能儲存2倍於有符號型別的正整數資料。

11樓:匿名使用者

signed 和 unsigned 是c語言中的型別指示符(type specifier),signed 指示被宣告的物件的型別為有符號整型(signed integer type),unsigned 指示被宣告的物件的型別為無符號整型(unsigned integer type)。

除了用於 bit field,單獨使用的 int 即指示有符號整型,此時 signed 沒有實際意義,int 和 unsigned 一同使用時指示無符號整型。

char,signed char,unsigned char 是三個不同的型別(char 和另外兩個之一的二進位制表示方法相同,至於 char 具體是否有符號,通常可通過編譯指令指定)。

對於 bit field, signed int 型別的 bit field 總是有符號的,unsigned int 型別的 bit field 總是無符號的,而單獨使用的 int 是否表示有符號,由編譯器定義。

無符號數的二進位制表示(object representation)由兩部分構成,即 value bits 和 padding bits,value bits 是一串二進位制位,第 m 個 value bit 表示 2 的 m-1 次方,因此 n 個 value bits 加起來就可以表示 0 到 2 的 n 次方減一 這個範圍內的所有整數。padding bits 不影響數的值(可能不存在 padding bit )。

有符號數的二進位制表示(object representation)由三部分構成,即 sign bit,value bits 和 padding bits ,其中 sign bit 只有一位,這一位的值為 0 時表示這個數為正數,此時它不影響有符號數的值,value bits 的含義與無符號數中的 value bits 相同。sign bit 為 1 時表示這個數為負數,此時這個數可以使用原碼、反碼、補碼 中的任何一種編碼來表示數值。和無符號數一樣,padding bits 不影響數的值(可能不存在 padding bit )。

例如,當某個無符號型別有 32 個value bits 時,它的第 1 個 value bit 表示 2 的 0 次方,第 2 個 value bit 表示 2 的 1 次方,……,第 32 個 value bit 表示 2 的 31 次方。當所有 value bits 都為 1 時,就表示 2 的 0 次方加 2 的 1 次方加……加 2 的 31 次方,即 2 的 32次方減一;當所有的 value bits 都為 0 時,就表示 0 ,這個無符號型別的取值範圍就是 0 到 2 的 32 次方減一。

與之對應的有符號型別有 1 個sign bit 和 31 個 value bits,當 sign bit 為 0 時,可以表示 0 到 2 的 31 次方減一範圍內的任何一個整數,如果使用補碼,當 sign bit 為 1 時,可以看作 sign bit 的值是 2 的 31 次方 的相反數,因此當 sign bit 為 1 時 sign bit 加上 value bit 一共可以表示 2 的 31 次方 的相反數到 -1 範圍內的任何一個整數,考慮所有情況,這個有符號型別的取值範圍就是 2 的 31 次方 的相反數 到 2 的 32 次方減一。

12樓:幻の上帝

signed和unsigned用於修飾整數型別(包括char,從ansi c89標準開始支援)。

signed表示有符號

,unsigned表示無符號。對應的有符號數的最大取值要比無符號的小約一半,因為最高一位被用來表示符號。

預設的int、short、long、long long為有符號數,也就是說,int等價於signed int,short等價於signed short,long等價於signed long,long long等價於signed long long。但是char本身是signed char還是unsigned char,取決於語言的實現(編譯器)。

範圍列表如下:

signed char:[-2^7, 2^7)即[-128, 128);

unsigned char:[0, 2^8)即[0, 256);

signed n位整數:[-2^(n-1), 2^(n-1));

unsigned n位整數:[0, 2^n)。

注意整數型別佔多少空間是不確定的,只能保證sizeof(shor)<=sizeof(int)<=sizeof(long)。一般32位平臺上,int和long為32位,short為16位,long long為64位。

====

[原創回答團]

13樓:匿名使用者

主要是取值範圍。

unsigned和signed在一種型別下,unsigned表示在這個範圍大小的整數,signed一般都是在這個範圍內的從負到正

有什麼不明白可以hi我 細聊

C 中ElemType e和ElemType e意思嗎

山水阿銳 您好,這個要看函式要實現的功能而定,比如函式從名字上看其作用就是將整數 i 插入elemtype連結串列 e 中,函式呼叫中對e的值的改變必須在函式外生效,所以應該用第二種形式 如果要求函式中對實參值的改變不影響函式外的值,則用第一種形式void insert int i,elemtype...

C 中類的定義可以巢狀嗎,c 中函式的定義和呼叫都可以巢狀嗎

芃芃 1 類的定義是可以巢狀的 2 在函式中可以定義類,但是意義不大,因為在函式中定義類,你只能在這個函式中使用這個類,其他的函式是沒法用的,所以一般不會把類的定義放在函式中,但是這並沒有錯,能編譯過,也就是說作用域只在函式。 周德群 不行,在函式中不能定義類,類可以包含函式,但是函式不可能包含類,...

c中new和override的區別

如果你用override,則無論呼叫的是a類還是b類中的test 系統都會找到它實質類的test 如果是用的new,則可以通過型別轉換呼叫到基類的test 下面是override的情況 a a new a b b new b a a1 new b a.test 呼叫a中test b.test 呼叫b...