【问题标题】:Can you read/write a specific bit from a byte/int/你能读/写一个字节/整数/的特定位吗?
【发布时间】:2022-12-17 09:18:33
【问题描述】:

来自 PLC 我习惯于能够写一个单独的位。 如果我想写入一个字节的第三位,我会执行以下操作:

byte Var1;
Var1.X2 := true;

在 C# 中是否有类似的方法可以轻松写入字节/整数的某个位?

现在,我使用总和来获得类似的结果(位 1 -> +1,位 3 -> +4,...),但能够读/写特定字节会更容易。

【问题讨论】:

  • Var1 |= (1 << 2) 将设置位 2,Var1 &= ~(1 << 2) 将清除它。
  • 通常会使用类似Var1 | 0x04(按位或)的东西来设置特定位。

标签: c# byte bit


【解决方案1】:

您可以使用一些位算术:

byte value = 8;
string binary = Convert.ToString(value, 2);
Console.WriteLine(binary);
value |= 1 << 2;
Console.WriteLine(Convert.ToString(value, 2));

【讨论】:

  • 可行,但使用关键字作为变量名是邪恶的;)
猜你喜欢
  • 2015-01-06
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 2020-08-15
  • 2010-09-29
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多