2013-12-18 62 views
1

我是正確的說的代表如下:機器級符號和無符號整數

  • unsigned int變量取整32位來表示一個非負整數使用二進制補碼。所以它可以容納的整數範圍是從0到(2^32) - 1。

  • 變量int取整個32位來表示一個整數使用二進制補碼。所以整數它可以容納的範圍是從 - (2^31)至(2^31) - 1。

E,I說,在一臺機器字大小是32位的情況。

+3

這些都不正確。 –

+0

如果int在你的架構上是32位,這是正確的? – rozina

+2

無符號不使用二進制補碼編碼。沒必要。 –

回答

6

這可能是很多時候。然而,C標準只要求int是至少16位大小的有符號整數,並且unsigned int是至少16位大小的無符號整數。

參見:http://en.wikipedia.org/wiki/C_data_types

特別:

int類型應該是整數類型,所述目標處理器是最有效的有工作。這允許很大的靈活性:例如,所有類型都可以是64位。但是,幾種不同的整數寬度方案(數據模型)很受歡迎。這是因爲數據模型定義了不同程序如何通信,在給定的操作系統應用程序界面中使用統一的數據模型。