c# - 在 if 语句中使用位运算

标签 c# bit

有人可以解释为什么这无效吗?我得到“无法将 int 转换为 bool”

 if (b & 1)

还有,为什么我做不到

 b & 1 

在代码中,这是执行此操作的正确方法吗?

 int b = b & 1
 if(b)

谢谢!

最佳答案

因为b & 1的结果是整数(如果b是整数)

正确的方法是(除其他外):

if ((b & 1) != 0) { ... }

if (Convert.ToBoolean(b & 1)) { ... }

关于c# - 在 if 语句中使用位运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13138695/

相关文章:

c++ - 如何计算 O(1) 中的二进制长度?

c - 如何在 C 中将 2 个字节转换为有符号短整型

c - 如何将 4 个 uint32_t int 组合成一个完整的 128 位 int 并返回

bit - 8 位和 16 位架构

c# - 在 SQLite 中使用 SELECT 命令列出附加数据库

c# - 具有相同主键的 FluentNHibernate 映射

c# - 与客户端应用程序打包的最佳数据库

c# - DelphiFeeds.com 有好的 .NET 版本吗?

c# - DateTime 给我 "01/01/0001 12:00:00 AM"而不是实际日期

c - 这行代码有什么作用?