Vin*_*ent 3 c++ bit-manipulation bit-shift
有人可以解释我为什么以下代码:
#include <iostream>
#include <bitset>
int main()
{
unsigned char i = 2;
std::cout<<std::bitset<8>((~static_cast<unsigned char>(0)) << i)<<std::endl;
std::cout<<std::bitset<8>((~static_cast<unsigned char>(0)) >> i)<<std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
生产:
11111100
11111111
Run Code Online (Sandbox Code Playgroud)
并不是:
11111100
00111111
Run Code Online (Sandbox Code Playgroud)