(1)10进制转换为2进制
1.以10为例:
10%2=0;
10/2=5;
5%2=1;
5/2=2;
2%2=0;
2/2=1;
1%2=1;
1/2=0;
一直到商为零为止;
10进制转换为二进制的代码如下:
#include<stdio.h>
int main(){
int n;
int sum;
int lengh;
int a[100];
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&sum);
lengh=0;
while(sum>0){
a[lengh]=sum%2;
sum=sum/2;
lengh=lengh+1;
}
for(i=lengh-1;i>=0;i--){
printf("%d",a[i]);
}
printf("\n");
}
}
在定义数组a时,不能使用a[lengh];
10进制转换为16进制
//if(a>=10 && a<15) 需要转换为char c=a+55;
else 需要转换为 char c=a+48
#include<stdio.h>
#include<string.h>
int main(){
int n;
char b[100];
int lenght=0;
scanf("%d",&n);
while(n>0){
int a=n%16;
char c=0;
if(a>10 && a<15){
c=a+55;
}
else{
c=a+48;
}
b[lenght]=c;
lenght=lenght+1;
n=n/16;
}
for(int i=lenght-1;i>=0;i--){
printf("%c",b[i]);
}
}