首页 > 其他 > 详细

数的某位置1 或置0

时间:2014-03-25 22:58:41      阅读:605      评论:0      收藏:0      [点我收藏+]

如何对数的某位置1 或置0

10 的二进制为:1010

#include <iostream>
#include <cmath>
using namespace std;

#define setbit(x,y) x|=(1<<y) //将X的第Y位置1
#define clrbit(x,y) a&=~(1<<1) //将X的第Y位清0
//
//
//int main()
//{
//	int a=290;
//	char b[32];
//
//	int n = sprintf(b,"%x", a);
//	cout<<n<<endl;
//	cout<<b<<endl;
//	system("pause");
//}
//} 

int to2(int n)
{
	int r=0;
	double b =10;
	int shang,yushu;
	shang=n;
	int i=0;
	while(shang!=0)
	{
		yushu=shang%2;
		r=r+pow(b,i)*yushu;
		i++;
		shang=shang/2;
	}
	return r;
}
void main()
{
	cout<<"10 的二进制1010"<<endl;
	int a=10;
	setbit(a,0); //a 的0位置1
	cout<<"a 的0位置1以后数据发生改变"<<endl;
	cout<<a<<endl;
	int b = to2(a);
	cout<<b<<endl;
	clrbit(a,1);//a的1位置0
	cout<<"a的1位置0以后数据发生改变"<<endl;
	cout<<a<<endl;
	int c = to2(a);
	cout<<c<<endl;
	//a&=~(1<<1);



	system("pause");


}



效果如下:

bubuko.com,布布扣

数的某位置1 或置0,布布扣,bubuko.com

数的某位置1 或置0

原文:http://blog.csdn.net/u010236550/article/details/22073709

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!