c++ - (bool)(i & 1) 和 i % 2 == 1 相同吗?

标签 c++ c cross-platform

(bool)(i & 1)i % 2 == 1 总是相同的,其中 iint

注意:我所说的始终是指所有平台(即使一个字节是 16 位)以及所有 C 和 C++ 标准。

编辑:

对于存在 bool 的所有 C 和 C++ 标准。

最佳答案

没有。

int

1s的补码表示,-1的表示为1 ... 10,所以它们不同。

无论如何,i % 2 可以是负数的负数 i (确实需要在 C99 中当它不为 0 时),因此对于负数不等于 1奇数。

关于c++ - (bool)(i & 1) 和 i % 2 == 1 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438402/

相关文章:

cross-platform - CocoStudio:可以为跨平台使用生成动态大小的场景吗?

push-notification - 如何从服务器为单个目标手机(跨平台)创建推送通知到手机应用程序?

c++ - 从 concurrent_unordered_map 中删除项目列表

c - malloc->分配了多少内存?

c - 如何将用户定义的宏传递给 xcodebuild?

c - C 库的实现是否依赖于操作系统?

c++ - 半透明 QWidget 应该可以跨操作系统点击

c++ - 什么会导致串行端口上的 CreateFile 调用极其缓慢?

c++ - Operator= 从 QMatrix4x4 派生时不起作用

c++ - 无法从单独的类 C++ 访问类的成员