難道有人可以向我解釋這兩個,因爲我必須在我的任務中對他們進行解釋。有符號和無符號整數?
我知道一個正常的整數當然是什麼,使用了下列來形容它:「一個整數是一個整數,可以爲正,負,零,但它不能有小數點」
但我只是不確定簽名和未簽名。
謝謝
難道有人可以向我解釋這兩個,因爲我必須在我的任務中對他們進行解釋。有符號和無符號整數?
我知道一個正常的整數當然是什麼,使用了下列來形容它:「一個整數是一個整數,可以爲正,負,零,但它不能有小數點」
但我只是不確定簽名和未簽名。
謝謝
通常當你說int,它是有符號整數。 (signed)int的的範圍爲-32768 - 32767 但unsigned int的的範圍爲0 - 65535
INT的一個無符號的變量類型可以容納零張正數,但一個符號int持有負,零或正數字。
對於16位而言,這是真實的,但對於32位,64位等是不準確的。如果您修改,則我的-1將變爲+1。 – Bathsheba
在大多數語言中,當你聲明一個整數時,你聲明一個有符號的整數。如果你想聲明一個無符號整數,你必須具體告訴編譯器。例如在c#
int a; // Signed int
uint b; // Unsigned int.
不同的是,在一個符號的int,一個位用於指示如果數是正還是負。在和unsigned int中,該位用於保存一個值。其效果是,您可以在無符號整數中保存絕對值的兩倍,如同在signed int中一樣。或者更清楚的是,C#整數的範圍是-2,147,483,648到2,147,483,647,而uint的範圍是0到4,294,967,295。這兩種數據類型都是32位數據類型。
有符號和無符號整數之間的差異是需要整數的一個字節來保存符號。
例如,對於兩個二進制數字,你可以有以下幾種:
Base 2 Base 10
00 0
01 1
10 2
11 3
但是,如果我們採取的第一個數字是指負(0)或正(1)
Base 2 Base 10
01 -1
00 0
10 1
11 2
或者,如果我們想要1是負數,並且0是正數:
Base 2 Base 10
01 1
00 0
10 -1
11 -2
要進一步閱讀,請查看t他的Wikepedia文章Two's compliment
「簽名」包含符號(負值或正值)。 「未簽名」不會 - 只能是非負面的。你可以在維基百科上找到大量的信息。 – iamnotmaynard