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"); }
效果如下:
原文:http://blog.csdn.net/u010236550/article/details/22073709