我正在尝试按位而不是按字节执行,如下所示:
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/