十进制的数字转化位二进制
除二取余不断放入数组
二进制化十进制按照位权相加
#include<iostream> #include<math.h> using namespace std; #define maxsize 100 int main(){ int n,arry[maxsize],arry2[maxsize],k,sum=0,t=0; cout<<"输入一个数字转化成二进制:\n"; cin>>n; int temp=n; for(int i=0;temp!=0;++i){ arry[i]=temp%2; temp=temp/2; k=i; } cout<<n<<"的二进制是:" ; for(int j=k;j>=0;--j){ cout<<arry[j]; } cout<<"\n二进制转化为十进制,输入一个二进制数\n"; string s; cin>>s; int length=s.length(); for(int i=length-1;i>=0;--i){ t=pow(2,i); int exchange=s[i]-'0'; sum+=exchange*t; } cout<<s<<"的十进制为:"<<sum; return 0; }
ok!
这个还有点有点bug……
当然这只是整数部分互相转化,还差小数转化。