首页 / 知识
关于不可知的语言:何时在签名值上使用无符号值?
2023-04-11 13:27:00

When to use unsigned values over signed ones?
什么时候在无符号变量上使用无符号变量合适? 在 我对此有很多意见,我想看看是否有任何类似共识的内容。
我知道Java没有unsigned值,这一定是Sun Microsystems做出的明智决定。 我很高兴在这个问题上找到了很好的对话,因为我之前从未真正考虑过。 总而言之,有符号是一个很好的常规选择-即使您不确定要确定所有数字都是正数,也要对变量进行算术运算(例如在典型的for循环情况下)。 如果您要进行掩码之类的按位操作,则无符号开始变得更有意义。或者,如果您渴望通过利用符号位来获得该额外的正范围。 就我个人而言,我喜欢签名,因为我不相信自己保持一致并避免将两种类型混合使用(如本文警告的那样)。 在上面的示例中,当" i"始终为正且范围较大将是有益的时,无符号将很有用。就像您使用"声明"语句一样,例如:
特别是当这些值永远不会改变时。 但是,如果您执行的会计程序中人们对自己的钱不负责任,并且始终处于亏损状态,那么您肯定会希望使用"签名"。 我确实同意圣人的观点,尽管有一个很好的经验法则是使用带符号的(C实际上默认为带符号的),所以您已被覆盖。 我认为,如果您的业务案例指示负数无效,那么您将希望显示或抛出错误。
考虑到这一点,我直到最近才在一个项目中处理二进制文件中的数据并将数据存储到数据库中时才发现无符号整数。我故意"破坏"了二进制数据,并最终得到了负值而不是预期的错误。我发现即使转换了值,该值对于我的业务案例也无效。 比较带符号和无符号类型时,C和C ++编译器将生成警告。在示例代码中,您无法使循环变量无符号,并且使编译器在没有警告的情况下生成代码(假设已打开警告)。 自然地,您在编译警告时一路向上,对吗? 而且,您是否考虑过将"警告作为错误处理"进行编译以使这一步骤更进一步? 使用带符号的数字的缺点是有一种使它们重载的诱惑,例如,值0-> n是菜单选择,而-1表示什么也没有选择-而不是创建具有两个变量的类,一个用于指示是否选择了某项,并指示另一项存储该选择。在不知不觉中,您正在各处测试负数,并且编译器抱怨您希望如何将菜单选择与菜单选择的数量进行比较-但这很危险,因为它们是不同的类型。所以不要那样做。
|
最新内容
相关内容
pythonfor循环语句怎么写
pythonfor循环语句怎么写,数据,培训,项目,语句,循环体,实例,教程,时会,字符串,序列,pythonfor循环可以遍历任何序列的项目,如一个列表或者一个pythonpython是前端语言吗?
pythonpython是前端语言吗?,代码,互动,培训,平台,标准,设计,语言,前端,语法,解释性,python语言属于后端开发语言。Python是一个高层次的结合pythonpython是什么类型的语言
pythonpython是什么类型的语言,培训,系统,教育,软件,电脑,代码,简介,人工智能,类型,语言,python是一种面向对象、解释型、动态类型计算机程序python脚本语言
python脚本语言,代码,设计,情况,培训,语句,项目,基础,意外,异常,空格,Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被python为什么是胶水语言
python为什么是胶水语言,代码,标准,培训,环境,一致,系统,统一,数据,周期性,服务,胶水语言先从Helloworld开始。所有学python的童鞋都会从这句pythonpython是脚本语言吗?
pythonpython是脚本语言吗?,设计,培训,大规模,项目,软件,面临,开发者,语言,脚本语言,方法,Python是脚本语言。python是一种计算机程序设计语python跨平台的语言
python跨平台的语言,平台,代码,系统,培训,手机,庞大,密码,数据,软件,工作,python是跨平台的,免费开源的一门计算机编程语言。是一种面向对象的python语言中的注释是什么
python语言中的注释是什么,培训,注释,代码,程序,可读性,开头,是非,以上,表示,语言,注释是提高代码可读性的重要途径,为了让别人能够更容易理解python新手先学C语言还是Python?
python新手先学C语言还是Python?,培训,工具,数据,环境,语言,新手,上手,程序员,乐趣,潜质,非计算机专业的人,学习编程最重要的是保持住兴趣,而不python在python中如何同时给多个变
python在python中如何同时给多个变量赋值?,培训,连续,名称,赋值,变量,函数,模块,整数,定义,常量,同时赋多个值以下是一种很酷的编程捷径:在Pytpython语言的全排列怎么提速?
python语言的全排列怎么提速?,培训,情况,代码,排列,元素,程序,方法,之后,语言,生成器,python从n个不同元素中任取m(m≤n)个元素,按照一定的顺python函数中使用for循环
python函数中使用for循环,培训,函数,内部,都会,实例,以上,更多,内容,python函数中使用for循环1、在for循环中使用函数需要更长的执行时间,因