您的位置:首页 > 编程语言 > C语言/C++

C++Primer第三版习题0413

2012-06-03 17:44 288 查看
#include <iostream.h>

inline bool bit_on(unsigned int &ui,int pos)
{
return ui &(1<<(pos-1));//判断某位是否为1
}

inline bool bit_off(unsigned int &ui,int pos)
{
return !bit_on(ui,pos);//判断某位是否为0
}

inline unsigned int bit_turnon(unsigned int &ui,int pos)
{
return ui|=(1<<(pos-1));//指定位置为1
}

inline unsigned int bit_turnoff(unsigned int ui,int pos)
{
return ui&=~(1<<(pos-1));//指定位置为0
}

inline unsigned int flip_bit(unsigned int ui,int pos)
{
return ui^=1<<(pos-1);//指定位反转
}

void main()
{
unsigned int quize=4;

cout<<quize<<":"<<endl;
cout<<bit_on(quize,2)<<endl;
cout<<bit_off(quize,2)<<endl;
cout<<bit_on(quize,2)<<"--"<<bit_off(quize,2)<<"--"<<bit_turnon(quize,2)<<endl;
cout<<quize<<":"<<endl;
cout<<bit_turnoff(quize,3)<<endl;
cout<<quize<<":"<<endl;
cout<<flip_bit(quize,3)<<endl;
}

out:

4:

0

1

1--0--6

6:

2

6:

2

Press any key to continue
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: