Binary hex


#include<stdio.h>
#include<string.h>

int main(){
int N,n,k,t,i,j,m;
char a[10005];
int b[10005]={0};
scanf("%d",&N); //2
while(N--){
scanf("%s",&a); //00011010 1A
n=strlen(a); //n=8
for(i=0;i<n;i++) //b[i] 初始化
b[i]=0;
k=0;
t=1;
m=0;
for(i=n-1;i>=0;i--){
b[k]=b[k]+(a[i]-'0')*t;//b[0]=0 b[0]=2 b[0]=2 b[0]=10 b[1]=1 b[1]=1 b[1]=1 b[1]=1
t=t*2; //t=2 t=4 t=8 t=16 t=2 t=4 t=8 t=16
m++; //m=1 m=2 m=3 m=4 m=5 m=6 m=7 m=8
if(m%4==0){
k++; // k=2
t=1; // t=1
}
}
for(i=0;i<n;i++){ //对b[i]操作
if(b[i]>=10){
switch(b[i]){
case 10 : b[i]='A'; break;
case 11 : b[i]='B'; break;
case 12 : b[i]='C'; break;
case 13 : b[i]='D'; break;
case 14 : b[i]='E'; break;
case 15 : b[i]='F'; break;
}
}
}
for(i=k;i>=0;i--){
if(b[i]!=0){
for(j=i;j>=0;j--){
if(b[j]>=65 && b[j]<=70 )
printf("%c",b[j]);
else printf("%d",b[j]);
}
break;
}
}
if(i==-1) printf("0");
printf("\n");
}
}

Guess you like

Origin www.cnblogs.com/cocobear9/p/11962824.html