开发者社区> 问答> 正文

为什么unsigned int不符合CLS?

为什么无符号整数不符合CLS?

我开始认为类型规范只是为了性能而不是正确性

展开
收起
游客ufivfoddcd53c 2020-01-03 16:52:32 869 0
1 条回答
写回答
取消 提交回答
  • 我怀疑,部分问题是围绕这样一个事实,即C中的无符号整数类型必须表现为抽象代数环的成员而不是数字[例如,如果无符号16位整数变量等于零, ,递减则需要产生65,535,如果等于65,535,则需要递增以产生零。]有时候这种行为非常有用,但是数字类型表现出的这种行为可能与某些语言的精神背道而驰。我猜想,忽略无符号类型的决定可能早于支持受检查和未经检查的数字上下文的决定。我个人希望无符号数和代数环有不同的整数类型。将一元负运算符应用于无符号32位数字应产生64位有符号结果(除零以外的任何值将产生负数),但对环类型应用一元负则应产生该环内的加法逆。

    无论如何,无符号整数不符合CLS的原因是Microsoft决定语言不必为了支持“ CLS兼容”就必须支持无符号整数。

    2020-01-03 16:52:44
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载