c# - 不按字节执行按位

标签 c# bitwise-operators

我正在尝试按位而不是按字节执行,如下所示:

byte b = 125;
byte notb = ~b; // Error here

这不起作用,因为 not 运算符仅适用于整数类型。我可以做到这一点,而且这似乎可行:

byte b = 125;
byte notb = (byte)((~b) & 255);

这似乎可行,因为它不是数字,然后将第 8 位之后的所有位翻转为 0,然后将其转换为一个字节。我想知道是否有更好的方法或我忽略的更简单的方法?

最佳答案

看起来 Lynx 不打算更新他的答案,因此为了将来引用,按位运算符在 byte 上工作得很好。它们只是返回一个 int,它不能分配给 byte 类型的变量。你在这里只需要一个 Actor :

byte notb = (byte)~b;

关于c# - 不按字节执行按位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23453732/

相关文章:

c# - 寻找 OnLog 事件 - log4net

java - Java 中按位运算符对 boolean 值的影响

c++ - -Wconversion warning while using operator <<= on unsigned char

c++ - 重载 <<,返回 ostream 会出错。 C++

c - 为什么在此代码中使用按位运算符的加法比算术加法慢得多

c# - 在 C# 中返回对 double 的引用?

带锁的 C# Visual Studio 调试器 UI 行为

c# - 如果任何参数为空,为什么 Enumerable.SequenceEqual 会抛出异常?

c# - ASP.NET MVC 错误 : Object being referred to is not locked by any Client

Javascript - 解析十六进制值