【发布时间】:2009-10-13 16:59:19
【问题描述】:
VB.NET 中的UInt32 数据类型是什么?
有人能告诉我它的位长以及UInt32 和Int32 之间的区别吗?是整数还是浮点数?
【问题讨论】:
VB.NET 中的UInt32 数据类型是什么?
有人能告诉我它的位长以及UInt32 和Int32 之间的区别吗?是整数还是浮点数?
【问题讨论】:
【讨论】:
它是一个 32 位无符号整数。
【讨论】:
【讨论】:
UInt32 是一个 32 位的无符号整数。 一个 32 位整数能够保存从 -2,147,483,648 到 2,147,483,647 的值。
但是,由于您指定了一个无符号整数,它只能存储正值。无符号 32 位整数的范围是 0 到 4,294,967,295。
尝试将值分配给超出其范围的 Int 或 UInt 将导致 System.OverflowException。
显然,UInt32 和 Int32 都是整数(不是浮点数),这意味着不允许或存储小数部分。
注意 Integer 和 System.Int32 在 .NET 中是相同的,这可能也很有趣。
出于性能原因,您应该始终尝试将 Int32 用于 32 位处理器,将 Int64 用于 64 位处理器,因为将这些类型加载到内存或从内存加载会比其他选项更快。
最后,尽量避免使用无符号整数,因为它们不符合 CLS。如果您只需要具有 UInt32 上限的正整数,最好使用 Int64 代替。无符号整数通常只用于 API 调用等。
【讨论】: