c# - 将代码段从 C++ 转换为 C#

标签 c# c++ .net-micro-framework

我正在尝试将这段 C++ 代码转换为 C#:

  if (latch_state & 0x1) {
    MC->setPin(AIN2pin, HIGH);
  } else {
    MC->setPin(AIN2pin, LOW);
  }

  if (latch_state & 0x2) {
    MC->setPin(BIN1pin, HIGH);
  } else {
    MC->setPin(BIN1pin, LOW);
  }

  if (latch_state & 0x4) {
    MC->setPin(AIN1pin, HIGH);
  } else {
    MC->setPin(AIN1pin, LOW);
  }

  if (latch_state & 0x8) {
    MC->setPin(BIN2pin, HIGH);
  } else {
    MC->setPin(BIN2pin, LOW);
  }

我知道如何将 MC->setPin(PinNum, state) 转换为 MC.setPin(pinNum, state) 所以它们不是问题,但我对 if 语句会变成什么感到困惑。

latch_stateuint8_t 类型,但它似乎像字节一样处理(这是我试图将其转换成的)和 0x1 似乎也是一个字节。

那么二元和操作如何在 if 语句中求值?

对于转换,我应该做什么

if ((latch_state & 0x1) == 0x0)if ((latch_state & 0x1) != 0x0) 还是完全不同的东西?

最佳答案

if ((latch_state & 0x1) != 0)

应该可以。通常,不计算为 bool 值的 C++ 条件会与 0 进行隐式比较,“真”表示表达式不为 0。

关于c# - 将代码段从 C++ 转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915275/

相关文章:

c# - 是否可以在加载 xml 时转义 & ?

c# - 难以理解 Silverlight 和 SQL

c# - 如何防止两次 Page_Load 运行 - Page.IsPostBack 始终为 false

c++ - BGR 到 HSV 然后再返回

c# - 什么会导致添加到哈希表的键为空?

c# - 在 .NETMF 4.0 中解析 RFC822-Datetime

c# - 包含 Unicode 字符检查失败

c++ - 如何将特定的内存地址分配给指针?

c++ - C# 到 c++/cli 到 unamanged c++ ref

c# - 如何正确解析从 GSM 模块收到的响应数据?