目录
十进制转二进制
思路
十进制数不断地对二取余得到二进制。
代码
C++语言
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
vector<int> a;
cin>>n;
while(n!=0)
{
a.push_back(n%2);
n=n/2;
}
for(int i=a.size()-1;i>=0;i--)cout<<a[i];
}
C语言
#include<stdio.h>
int main()
{
int n,m=0,i;
int a[100];
scanf("%d",&n);
while(n!=0)
{
a[m]=n%2;
m++;
n=n/2;
}
for(i=m-1;i>=0;i--)printf("%d",a[i]);
}
运行结果
二进制转十进制
思路
代码(C语言)
输入为整型
#include<stdio.h>
#include<math.h>
int main()
{
int n,w=0,a[100],sum=0,i;
scanf("%d",&n);
while(n!=0)//算出是几位二进制数和每一位二进制上的数
{
a[w]=n%10;
n=n/10;
w++;
}
for(i=0;i<w;i++)
sum+=a[i]*pow(2,i);
printf("%d",sum);
}
输入为字符串
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
char a[100];
int sum=0,i;
gets(a);
int n=strlen(a);
for(i=0;i<n;i++)
sum+=(a[n-i-1]-'0')*pow(2,i);
printf("%d",sum);
}
运行结果
欢迎指正!