我对位运算符不是很熟悉,并且有这种用例:当我们在<<
中使用左移位运算符C++
时,数字将被移位,数字0将被放置在数字的右侧,我想放置1而不是零在右边。
我的意思是,如果我有一个数字00000000
,并且使<< << 3,则结果必须是00000111
而不是0!
最佳答案
一种简单的方法是将1
左移要设置的位数,然后减去1
(1 << n) - 1
例如。cout << (1 << 2) - 1 << '\n'; // prints 3
cout << (1 << 3) - 1 << '\n'; // prints 7
cout << (1 << 4) - 1 << '\n'; // prints 15
cout << (1 << 5) - 1 << '\n'; // prints 31
但请注意,这仅在n
小于整数的位数时才有效。否则,它是不确定的行为。
关于c++ - 在数字的右边使用左移运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64168193/