1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| char zidian[]="01234567"; int flag=0; char jiemizifu[3]; int bianli(char a) { int j=0; for(int b=0;b<8;b++) { if(a==zidian[b]) { return b; } } } long long int zhuanhua10(char *a,char *b) { if(b-a>7) return 0; return bianli(*a)+zhuanhua10(a-1,b)*8; } long long int zhuanhua256(long long int a) { if(a<=0) return 0; return a%256+zhuanhua256((a-a%256)/256)*1000; } void jiemi(char *a,char *b,int lenth) { for(int i=0,j=0;j<lenth;i+=3,j+=8) { long long int linshi=zhuanhua256(zhuanhua10(a+j+7,a+j+7)); (b)[i+2]=linshi%1000; linshi/=1000; (b)[i+1]=(linshi%1000); linshi/=1000; (b)[i]=(linshi%1000); } } int main() { char zifuchuan[]="2645153225431064252551072025110716055127160331032465113222654061142345302363050424443400"; char a[100]; jiemi(zifuchuan,(a),89); printf("%s",a); }
|