C# 有符号整数 无符号整数

时间:2023-01-11 23:44:09

简单来讲:

有符号整数:即有正号和负号
无符号整数:即只有正号没有负号

举个例子,16位整型数

int i; i 为有符号整数,取值范围:-32768——32767

unsigned int j; j 为无符号整数,取值范围:0——65535

MSDN对Uint64 的描述:

表示 64 位无符号整数

此 API 不兼容 CLS。 兼容 CLS 的替代 API 为 Decimal

但是 无符号整数不兼容CLS

为什么呢。

按照.Net CLS的定义:NET通过定义公共语言规范(CLS:Common Language Specification),限制了由这些不同引发的互操作性问题。CLS制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现互操作性所需要的完备特征。CLS是CTS的一个子集。这就意味着一种语言特征可能符合CTS标准,但又超出CLS的范畴。

也就是说CLS是.NET与其他.NET语言的共同规范特征。而无符号语言可能不支持其他.NET语言,不符号CLS的标准。但绝对符号CTS的标准。