查看 C# 数字数据类型,我注意到大多数类型都有带符号和不带符号的版本。我注意到虽然“默认”整数、short 和 long 是有符号的,但它们的无符号对应物是 uint、ushort 和 ulong; “默认”字节是无符号的 - 并且在 sbyte 中有一个带符号的对应部分。
只是出于好奇,为什么 byte 与其他的如此不同?这背后是否有特定原因或“事情就是这样”?
希望问题不会因为我的措辞和过度使用引号而变得太困惑。呵呵..
最佳答案
我会说字节不被视为数字类型,而是定义了一个大小为 8 位的结构。除了没有符号字节的概念,它是无符号的。另一方面,数字首先被认为是有符号的,因此声明它们是无符号的,这是不常见的保证前缀
[编辑] 忘记了有符号字节 (sbyte)。我想这是相当历史和实际的应用。 Ints 比 UInts 更常见,byte 比 sbyte 更常见。
关于C# 数值数据类型命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3615042/