将任一整数转换为二进制形式
2012-12-01 20:03
274 查看
(1)方法1-----递归方法调用---通过进制转换规则进行
(2)方法2-----递归方法调用---通过移位方式进行
(3)利用数组实现
//将任一整数转换为n进制形式----进制转换法 //注意:对于要转换成16进制形式,必须考虑到10,11,12,13,14,15必须用英文字母A,B,C,D,E,F表示 #include <iostream> using namespace std; int main() { void print10_2(int n,int d); //函数声明 int x,y; cout<<"输入你想转换的数"<<endl; cin>>x; cout<<"输入你想转换的进制"<<endl; cin>>y; cout<<x<<"的"<<y<<"进制数为:"; print10_2(x,y); //函数调用 cout<<endl; return 0; } void print10_2(int n,int d) //递归函数求数n的d进制数 { int m; if(n>=d) print10_2(n/d,d) ; //递归调用 if(d==2||d==8) cout<<n%d; if(d==16) { m=n%d; if(m<10) cout<<m; else switch(m) { case 10:cout<<'A';break; case 11:cout<<'B';break; case 12:cout<<'C';break; case 13:cout<<'D';break; case 14:cout<<'E';break; case 15:cout<<'F';break; } } }
(2)方法2-----递归方法调用---通过移位方式进行
//将任一整数转换为二进制形式----方法2--移位法 /*问题分析与算法设计 将十进制整数转换为二进制的方法很多,这里介绍的实现方法利用了C++语言能够对位进行操作的特点。 对于C++语言来说,一个整数在计算机内就是以二进制的形式存储的, 所以没有必要再将一个整数经过一系列的运算转换为二进制形式,只要将整数在内存中的二进制表示输出即可。 */ #include<iostream> using namespace std; void printb(int,int); int main() { int x; cout<<"Input number:"; cin>>x; cout<<"number of decimal form:"<<x<<endl; cout<<" it's binary form:"; printb(x,sizeof(int)*8); cout<<endl;; } void printb(int x,int n)//递归函数 { if(n>0) { putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); printb(x,n-1); } }
(3)利用数组实现
#include <iostream> using namespace std; int main() { int n; cout<<"请输入待转换的十进制数:"; cin>>n; int number[100]; //进制转换 int m,j,trans; for(int i=0;i<=2;i++) //i来控制外层循环次数,分别进行2进制、8进制、16进制转换 { j=0; m=n; if(i==0) trans=2; //trans存储要进行转换的进制数 if(i==1) trans=8; if(i==2) trans=16; while(m!=0) //辗转相除到商为0 { number[j++]=m%trans; m=m/trans; } cout<<"转换为"<<trans<<"进制,"<<n<<"是:"; j--; while(j>=0) //余数倒序输出 { char ch; if(number[j]>=0&&number[j]<=9) ch=number[j]+'0'; else ch=number[j]-10+'A'; //处理十六进制的字符'A'--'Z' cout<<ch; j--; } cout<<endl; } }
相关文章推荐
- C语言中的位操作例子(将任一整数转换为二进制形式)
- C语言中的位操作例子(将任一整数转换为二进制形式)
- 8、编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数, 然后打印出这个十进制整数对应的二进制形式。
- C++字符串(16进制、8进制形式)转换为整数——strtol
- 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
- 输出输入的任意整数的二进制存储形式
- 输入一正整数,其对应的二进制形式为
- 输出整数n的二进制形式
- 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
- C++写十进制整数转换二进制数
- 【C/C++】获取整数的二进制形式字符串
- C 将无符号整数以二进制形式显示输出
- 关于将字符串形式的转换成整数,浮点数等;以及逆方向的方法;
- 计算一个32位整数的二进制形式中1的个数
- C语言中以二进制形式输出整数
- 设计算法,把十进制整数转换为二至九进制之间的任一进制输出。
- 关于统计整数转换为二进制后含多少1的问题
- 关于浮点数转换为整数的(int )和(int &)形式
- C语言整数十进制按照二进制形式输出程序
- ip(点分十进制 <==> 二进制整数)之间的转换