我刚刚开始阅读C#语言,我的阅读材料的第一部分之一就是变量和类型。
我在短时间内遇到了整数类型表,其中列出了 sbyte
, byte
, short
, ushort
, int
, uint
, {{1 } , long
和 ulong
。
这里配对的例外是 char
,所以让我们忽略它并看看其他的。
第一对 char
,在签名版本前加上“s”,并保留没有前缀的无符号版本。但对于所有其他对,关系是相反的...签名版本没有前缀,unsigned有一个“u”前缀。
我有没有理由知道这一点,或者这只是一个设计怪癖?
答案 0 :(得分:13)
字节通常被视为位模式而不是正常数字,并且字节的“标准”值为0到255.字节的签名版本是异常情况,值被视为-128到127
对于所有其他数字类型,“标准”值都是有符号的,因为这符合我们对数字的日常直觉(即它们既可以是负数也可以是正数)。对于数字类型,无符号版本是异常情况。
(我不认为我曾在任何实际代码中使用sbyte
,而且我使用int
,long
等等比我使用未签名的同行更常见。)
答案 1 :(得分:4)
我猜测byte
可能更常用作无符号类型而不是签名类型。