快速:设置int的前2位

Fli*_*ter 1 c# int bit-manipulation

这实际上对谷歌来说相当棘手.

你如何设置(按位或)32位int的前两位?

我从我尝试的所有内容中收到编译器警告.

Meh*_*ari 6

试试这个:

integerVariable |= 3 << 30; 
Run Code Online (Sandbox Code Playgroud)

使用(1 << 31)|可能更清楚 (1 << 30)代替(3 << 30),或者你可以添加关于行为的评论.在任何情况下,编译器都应该能够将表达式优化为单个值,该值等于int.MinValue >> 1== int.MinValue / 2.


如果它是uint:

uintVar |= 3u << 30;
Run Code Online (Sandbox Code Playgroud)