为什么无符号整数不符合CLS?
我开始认为类型规范只是为了性能而不是正确性
我怀疑,部分问题是围绕这样一个事实,即C中的无符号整数类型必须表现为抽象代数环的成员而不是数字[例如,如果无符号16位整数变量等于零, ,递减则需要产生65,535,如果等于65,535,则需要递增以产生零。]有时候这种行为非常有用,但是数字类型表现出的这种行为可能与某些语言的精神背道而驰。我猜想,忽略无符号类型的决定可能早于支持受检查和未经检查的数字上下文的决定。我个人希望无符号数和代数环有不同的整数类型。将一元负运算符应用于无符号32位数字应产生64位有符号结果(除零以外的任何值将产生负数),但对环类型应用一元负则应产生该环内的加法逆。
无论如何,无符号整数不符合CLS的原因是Microsoft决定语言不必为了支持“ CLS兼容”就必须支持无符号整数。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。