c++ - -0 在 C 和 C++ 中是什么意思?
问题描述
我正在用 C/++ 编写算法,当我使用 print 语句(我知道非常专业)进行调试时,我看到了一个奇怪的值:-0
. 这是否意味着与常规 0 相同的事情,或者这会导致错误吗?如果是这样,我该如何修复这些错误?
解决方案
在这两种语言中都是常量/文字-0
的一元否定。int
0
如果您int
是 2 的补码(最有可能在 C 中,并且必须来自 C++20),那么它与 完全相同0
,并且没有任何理智的格式化程序会-0
为0
.
如果您int
是 1 的补码或有符号幅度,-0
则为有符号负零。它将在数值上比较等于 0,但其位模式将不同。
您可以通过添加零将带符号的负零转换为零!
最有可能的是,您的打印语句正在输出一个略微负的浮点值,您的格式正在向零舍入,因此您无需担心。
推荐阅读
- javascript - 在单选按钮(标签)的选择中添加效果
- reactjs - 样式在样式表中不起作用
- java - 如何将服务注入监听器?
- node.js - 你知道在 PWA 离子项目中使用 OpenALPR 的方法吗?
- angular - 输入 NgDatePicker 格式化所选日期 Angular
- laravel - laravel如何防止空数据插入数据库?
- python - 正则表达式按用户搜索匹配用户,而不是在整个数据中搜索
- magento - 无效的表单密钥 PayPal 托管付款
- node.js - 在 React 和 NodeJs 中下载时 Zip 文件损坏
- java - Apache Camel:如果出现错误,如何将文件从 preMove 文件夹移回原始文件夹