“int”和“uint”/“long”和“ulong”有什么区别?
我知道int
和long
(32位和64位数字),但是什么是uint
和ulong
?
以“u”为前缀的原始数据types是具有相同位大小的无符号版本。 实际上,这意味着他们不能存储负数,但另一方面他们可以存储两倍于正式签名的正数。 签字的对方没有“u”前缀。
int(32位)的限制是:
int: –2147483648 to 2147483647 uint: 0 to 4294967295
而长(64位):
long: -9223372036854775808 to 9223372036854775807 ulong: 0 to 18446744073709551615
uint
和ulong
是int
和long
的无符号版本。 这意味着他们不能是负面的。 相反,他们有一个更大的最大值。
types最小最大CLS兼容 int -2,147,483,648 2,147,483,647是的 uint 0 4,294,967,295 No 长-9,223,372,036,854,775,808 9,223,372,036,854,775,807是的 ulong 0 18,446,744,073,709,551,615没有
要在您的源代码中写入一个文字无符号整型,您可以使用后缀u
或U
(例如123U
。
如果您希望符合CLS标准,则不应在您的公共界面中使用uint和ulong。
阅读文档以获取更多信息:
- INT
- UINT
- 长
- ULONG
顺便说一下,也有短暂和ushort和字节和sbyte 。
u
意思是unsigned
,所以ulong
是一个没有符号的大数。 你可以在ulong
存储一个比long
更大的值,但是不允许有负数。
一个long
值被存储在64位,其第一个数字显示是否是正数/负数。 而ulong
也是64位,全部是64位来存储这个数字。 所以ulong的最大值是2(64)-1,long是2(63)-1。
不同之处在于uint
和ulong
是无符号的数据types,这意味着范围是不同的:它们不接受负值:
int range: -2,147,483,648 to 2,147,483,647 uint range: 0 to 4,294,967,295 long range: –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 ulong range: 0 to 18,446,744,073,709,551,615