当前位置:  开发笔记 > 编程语言 > 正文

为什么在许多语言中默认签署int类型的变量?

如何解决《为什么在许多语言中默认签署int类型的变量?》经验,为你挑选了1个好方法。

int默认情况下,C,C++,C#,Java,Rust等已签名.大多数时候你需要无符号变量,因为你必须表示低于零的东西的情况比处理自然数的情况要少.无符号变量也不必以2的补码形式编码,并且对于额外的值范围,它们具有最高有效位.

考虑到所有这些因素,为什么语言创建者会默认签名?



1> chqrlie..:

我认为你的基本要求是错误的.负数在现实生活中非常普遍.想想温度,银行账户余额,SO问题和答案分数......在计算中建模物理数据需要一种表达负数量的自然方式.

事实上,Brian Kernighan和Dennis Ritchie 的C编程语言中的第二个例子是一个转换华氏温度和Celcius量表之间温度的程序.这是他们C语言数字应用程序的第一个例子.

数组大小确实是正数,但指针偏移在C中可能是负数.

其他语言(如Ada)指定数值变量的范围,但算术计算仍假定为连续性,0并且此隐含负数.

C中指定的无符号算术实际上令人困惑:1U - 2U大于0,就像-1U.将其设为默认值会非常直观!

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有