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 中的類和物件,c 中的類和類的物件是什麼意思

c 類的定義 類是定義同一類所有物件的變數和方法的藍圖或原型類也可以定義類變數和類方法。可以從類的例項中或者直接從類中訪問類變數和方法。類方法只能操作類變數,不必訪問例項變數或例項方法。系統在第一次在程式中遇到一個類時為這個類建立它的所有類變數的拷貝,這個類的所有例項共享它的類變數 c 物件的定義 ...

C中關鍵字ref和out的區別,c 中ref和out關鍵字的用法,以及有什麼不同,求大神解答,線上等

山東中公優就業 1 兩者都是按地址傳遞的,使用後都將改變原來引數的數值。2 ref可以把引數的數值傳遞進函式,但是out是要把引數清空,就是說你無法把一個數值從out傳遞進去的,out進去後,引數的數值為空,所以你必須初始化一次。這個就是兩個的區別,或者說就像有的說的,ref是有進有出,out是隻出...

c中解釋下out和ref的區別,C 中解釋下out和ref的區別?

小膽大俠 ref 要求引數在傳遞給函式前要初始化,out則不需要,常見於平臺呼叫中 糖糖寳寳 out與ref的區別如下 private void button1 click object sender,eventargs e ref public void refvalue ref int refi...