?? hec.h
字號:
int er_ba(char a[],int count,char s[])
{int number=1,j=0,sum=0;
char s2[43];
if (count==-2) return -2;
for (;count>=0;) /*按照2轉(zhuǎn)8的421規(guī)則,從最右邊開始,2所對應的8是先是1,再是2,再是4,再把這三位中2進制是1的數(shù)相加,就是8進制的最低位。然后再算后往左推,,*/
{number=1;
while(number<5)
{if (a[count--]=='1')
sum=sum+number;
if (count==-1) break;
number=number*2;}
s2[j++]=sum;
sum=0; }
s2[j--]='\0';
while(1)
{if (j==0) break;
if (s2[j]==0)
j--;
else
break;}
for (count=0;count<=j;count++)
s[count]=s2[j-count]+48;
s[count]='\0';
return j;
}
/*后面的算法都是書上說的算法,我就不說了*/
int er_shi(char a[],int count,char s[])
{int i=0,j=0,x,count2;
unsigned long sum=0;
char s2[36];
if (count>32 || count==-2) return -2;
count2=count;
for (;i<=count2;i++)
{if (a[count]=='1')
x=1;
if (a[count]=='0')
x=0;
sum=sum+x*pow(2,i);
count--;}
i=0;
while(1)
{s2[i++]=sum%10;
sum=sum/10;
if (sum<1) break;}
s2[i--]='\0';
for (;j<=i;j++)
s[j]=s2[i-j]+48;
s[j]='\0';
return i;
}
int er_shiliu(char a[],int count,char s[])
{int number,j=0,sum=0;
char s2[36];
if (count==-2) return -2;
for (;count>=0;)
{number=1;
while(number<9)
{if (a[count--]=='1')
sum=sum+number;
if (count==-1) break;
number*=2;}
if (sum>9)
s2[j]=sum-10+'A';
else
s2[j]=sum+48;
j++;
sum=0;}
s2[j--]='\0';
while(1)
{if (j==0) break;
if (s2[j]=='0')
j--;
else
break;}
for (count=0;count<=j;count++)
s[count]=s2[j-count];
s[count]='\0';
return j;
}
int ba_er(char b[],int count,char s[])
{int i,j=0;
s[0]='0';
if (count==-2) return -2;
for (i=0;i<=count;i++)
{switch(b[i])
{case '0': s[++j]='0'; s[++j]='0'; s[++j]='0'; break;
case '1': s[++j]='0'; s[++j]='0'; s[++j]='1'; break;
case '2': s[++j]='0'; s[++j]='1'; s[++j]='0'; break;
case '3': s[++j]='0'; s[++j]='1'; s[++j]='1'; break;
case '4': s[++j]='1'; s[++j]='0'; s[++j]='0'; break;
case '5': s[++j]='1'; s[++j]='0'; s[++j]='1'; break;
case '6': s[++j]='1'; s[++j]='1'; s[++j]='0'; break;
case '7': s[++j]='1'; s[++j]='1'; s[++j]='1'; break;}}
s[j+1]='\0';
return j;
}
int ba_shi(char b[],int count,char s[])
{char s2[130];
int sc,s2c;
if (count==-2) return -2;
s2c=ba_er(b,count,s2);
sc=er_shi(s2,s2c,s);
return sc;
}
int ba_shiliu(char b[],int count,char s[])
{char s2[130];
int sc,s2c;
s2c=ba_er(b,count,s2);
sc=er_shiliu(s2,s2c,s);
return sc;
}
int shi_er(char x[],int count,char s[])
{int i,j=0,t;
unsigned long x_s=0;
char s2[130];
if (count==-2) return -2;
for (i=count;i>=0;i--)
{t=x[i]-48;
x_s+=t*pow(10,j);
i=0;
while(1)
x_s/=2;
i++;
if (x_s==0) break; }
s[0]='0';
s2[i--]='\0';
for (j=0;j<=i;j++)
s[j+1]=s2[i-j]+48;
s[j+1]='\0';
return j;
}
int shi_ba(char x[],int count,char s[])
{char s2[130];
int sc,s2c;
if (count==-2) return -2;
s2c=shi_er(x,count,s2);
sc=er_ba(s2,s2c,s);
return sc;
}
int shi_shiliu(char x[],int count,char s[])
{char s2[130];
int sc,s2c;
if (count==-2) return -2;
s2c=shi_er(x,count,s2);
sc=er_shiliu(s2,s2c,s);
return sc;
}
int shiliu_er(char n[],int count,char s[])
{int i,j=0;
s[0]='0';
if (count==-2) return -2;
for(i=0;i<=count;i++)
{switch(n[i])
{case '0': s[++j]='0'; s[++j]='0'; s[++j]='0'; s[++j]='0'; break;
case '1': s[++j]='0'; s[++j]='0'; s[++j]='0'; s[++j]='1'; break;
case '2': s[++j]='0'; s[++j]='0'; s[++j]='1'; s[++j]='0'; break;
case '3': s[++j]='0'; s[++j]='0'; s[++j]='1'; s[++j]='1'; break;
case '4': s[++j]='0'; s[++j]='1'; s[++j]='0'; s[++j]='0'; break;
case '5': s[++j]='0'; s[++j]='1'; s[++j]='0'; s[++j]='1'; break;
case '6': s[++j]='0'; s[++j]='1'; s[++j]='1'; s[++j]='0'; break;
case '7': s[++j]='0'; s[++j]='1'; s[++j]='1'; s[++j]='1'; break;
case '8': s[++j]='1'; s[++j]='0'; s[++j]='0'; s[++j]='0'; break;
case '9': s[++j]='1'; s[++j]='0'; s[++j]='0'; s[++j]='1'; break;
case 'A':
case 'a': s[++j]='1'; s[++j]='0'; s[++j]='1'; s[++j]='0'; break;
case 'B':
case 'b': s[++j]='1'; s[++j]='0'; s[++j]='1'; s[++j]='1'; break;
case 'C':
case 'c': s[++j]='1'; s[++j]='1'; s[++j]='0'; s[++j]='0'; break;
case 'D':
case 'd': s[++j]='1'; s[++j]='1'; s[++j]='0'; s[++j]='1'; break;
case 'E':
case 'e': s[++j]='1'; s[++j]='1'; s[++j]='1'; s[++j]='0'; break;
case 'F':
case 'f': s[++j]='1'; s[++j]='1'; s[++j]='1'; s[++j]='1'; break;} }
s[j+1]='\0';
return j;
}
int shiliu_ba(char n[],int count,char s[])
{char s2[130];
int sc,s2c;
s2c=shiliu_er(n,count,s2);
sc=er_ba(s2,s2c,s);
return sc;
}
int shiliu_shi(char n[],int count,char s[])
{char s2[130];
int sc,s2c;
if (count==-2) return -2;
s2c=shiliu_er(n,count,s2);
sc=er_shi(s2,s2c,s);
return sc;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -