有人可以向我解释这两个吗,因为我必须在我的作业中对它们进行解释。
我当然知道什么是普通整数,并使用以下内容来描述它:
“整数是一个整数,可以是正数、负数和零,但不能有小数点。”
但我只是不确定签名和未签名。
谢谢
在大多数语言中,当您声明一个整数时,您就是在声明一个有符号整数。如果你想声明一个无符号整数,你必须特别告诉编译器。例如在 C# 中
int a; // Signed int
uint b; // Unsigned int.
不同之处在于,在有符号整数中,其中一位用于指示数字是正数还是负数。在无符号整数中,该位用于保存一个值。效果是您可以在 unsigned in 中保存两倍的绝对值,就像在有符号 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
如需进一步阅读,请查看关于Two's 恭维的维基百科文章
一般当你说int的时候,就是signed int。(有符号) int 的范围是 -32768 - 32767 但 unsigned int 的范围是 0 - 65535
无符号变量类型的 int 可以保存零和正数,但有符号的 int 保存负数、零或正数。