有符号和无符号整数?

时间:2013-09-26 15:29:07

标签: integer unsigned signed

有人可以向我解释这两个因为我必须在我的任务中给出解释。

我知道正常整数当然是什么,并使用以下内容来描述它:

“整数是一个整数,可以是正数,负数和零但不能有小数点。”

但我不确定签名和未签名。

由于

3 个答案:

答案 0 :(得分:0)

在大多数语言中,当您声明一个整数时,您将声明一个有符号整数。如果要声明无符号整数,则必须专门告知编译器。例如在c#

int a; // Signed int
uint b; // Unsigned int.

不同之处在于,在signed int中,其中一个位用于指示数字是正数还是负数。在和unsigned int中,该位用于保存值。结果是,您可以在unsigned in中保存两倍绝对值,就像在signed int中一样。或者更简单地说,C#整数的范围是-2,147,483,648到2,147,483,647,而uint的范围是0到4,294,967,295。两种数据类型都是32位数据类型。

答案 1 :(得分:0)

有符号整数和无符号整数之间的区别在于整数的一个字节是保存符号所必需的。

例如,有两个二进制数字,您可以拥有以下内容:

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为negatiave,0为肯定:

Base 2   Base 10
01       1
00       0
10       -1
11       -2

如需进一步阅读,请查看Two's compliment

上的Wikepedia文章

答案 2 :(得分:-1)

通常当你说int时,它是signed int。 (signed)int的范围是-32768 - 32767 但是unsigned int的范围是0 - 65535

无符号变量int的类型可以包含零和正数,但有符号的int包含负数,零或正数。