从一个整数中把从右边开始的4~7位取出来。
1、a右移4位: a>>4.
2、设置一个低4位为1,其余为全为0的数b:~(~0<<4).
0: 000000000...0
~0: 1111111....1
~0<<4: 11111...0000
~(~0<<4): 00000....1111
3、将a与b相与,即可取出a的后4位,即右移前的从又边开始的4~7位
(a>>4) & ~(~0<<4)
程序如下:
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
unsigned a,b,c,d;
cout<<"输入a的值:"<<endl;
cin>>a;
a>>4;
b=~(~0<<4);
c=a&b;
cout<<"a的4~7位是:"<<c<<endl;
return 0;
}