一种反转整数变量二进制值的方法

Mar*_*nov 18 c#

我有这个int nine = 9;二进制的整数1001.是否有一种简单的方法可以将其反转以便我可以获得0110

Sco*_*ica 34

int notnine = ~nine;
Run Code Online (Sandbox Code Playgroud)

如果你只担心最后一个字节:

int notnine = ~nine & 0x000000FF;
Run Code Online (Sandbox Code Playgroud)

如果你只对最后一个蚕食感兴趣:

int notnine = ~nine & 0x0000000F;
Run Code Online (Sandbox Code Playgroud)

〜运算符是按位取反,而面具只给你字节/轻咬你所关心的.

如果你真的只对最后一个半字节感兴趣,简单的是:

int notnine = 15 - nine;
Run Code Online (Sandbox Code Playgroud)

适用于每个蚕食.:-)


Ser*_*rvy 15

有专门为它准备的运营商~.

nine = ~nine;
Run Code Online (Sandbox Code Playgroud)


sh1*_*1ng 1

使用异或与 111111....

var inverted = a ^ int.MinValue
Run Code Online (Sandbox Code Playgroud)