数的某位置1 或置0
2014-03-25 16:37
225 查看
如何对数的某位置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"); }
效果如下:
相关文章推荐
- 如何用腾讯电脑管家备份微信聊天记录
- 在VS2010中使用Git(转)
- skyline TerraBuilder 制作MPT方法与技巧(2)
- Insertion Sort List
- 分数类
- 中小企业服务器设置入门
- 正数、负数的原码,反码,补码
- apache 重写和虚拟目录配置
- Oracle Weblogic 之---字符安装全记录
- 影子里的世界
- DFS的基础训练清单
- Ubuntu 14.04 壁纸大赛5幅最佳图片
- Ubuntu 14.04 壁纸大赛5幅最佳图片
- Ruby对数组,散列表,字符串,数字的操作
- MongoDB服务启动时报"Windows 无法启动Mongo DB服务 错误:1067 进程意外终止"
- linux与unix
- 软件工程-电梯调度算法分析与实现
- VMware虚拟机、centos6下安装部署hadoop2.2
- 设计模式(22)桥连模式Bridge
- 在醒着的时间里,追求你认为最有意义的事