灵溪一中元旦汇演:一道编程题目????!

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 08:44:06
试编一个程序:把无符号整型变量x中第p位开始的n位变反(即把1变0、把0变1)其余位保持不变.(提示:利用异或、按位取反和左移实现)

我是把最低位当作第1位,不知理解对没

//试编一个程序:把无符号整型变量x中第p位开始的n位变反(即把1变0、把0变1)其余位保持不变.
#include <iostream>
using namespace std;

int main(){
int p;
int n;
unsigned int x;
cout<<"x=";
cin>>x;
cout<<"p=";
cin>>p;
cout<<"n=";
cin>>n;
for(int i=0;i<n;i++){
x=(1<<(p+i-1))|x;
}
cout<<x;
return x;

return 0;
}