Ice*_*ind 5 c# bitwise-operators
我试图在一个字节上执行按位,如下所示:
byte b = 125;
byte notb = ~b; // Error here
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为not运算符仅适用于整数类型.我可以做到这一点,这似乎工作:
byte b = 125;
byte notb = (byte)((~b) & 255);
Run Code Online (Sandbox Code Playgroud)
这似乎有效,因为它不是数字,然后将第8位之后的所有位翻转为0,然后将其转换为字节.我想知道的是,如果有更好的方法来做这个或更简单的方式,我只是忽略?
看起来Lynx并不打算更新他的答案,因此为了将来参考,按位运算符可以正常工作byte.它们只返回一个int,它不能赋值给类型的变量byte.你只需要一个演员:
byte notb = (byte)~b;
Run Code Online (Sandbox Code Playgroud)