Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- // 00000000 00000000 00000001 00000001 00000000 00000000
- void encode (char a[], int length, char b[])
- {
- int k=0;
- if(length%3 !=0)
- length = length + ( 3 - (length - (length/3*3)));
- int padding = 3 - (length-(length/3*3)) -1;
- for(int i=0;i<length/3;i++)
- {
- int val=0;
- val=val+(a[i*3]<<16);
- val=val+(a[i*3+1]<<8);
- val=val+a[i*3+2];
- b[k++]=(val&((~(~0<<6))<<18))>>18;
- b[k++]=(val&((~(~0<<6))<<12))>>12;
- b[k++]=(val&((~(~0<<6))<<6))>>6;
- b[k++]=val&(~(~0<<6));
- }
- for(int i=0; i<k-padding; ++i)
- {
- if(b[i]<('Z'-'A'))
- printf("%c", b[i]+'A');
- else if(b[i]<('Z'-'A')+('z'-'a'))
- printf("%c", b[i]-('Z'-'A')+'a');
- else if(b[i]<('Z'-'A')+('z'-'a')+('9'-'0'))
- printf("%c", b[i]-('Z'-'A')-('z'-'a')+'0');
- else if(b[i]==62)
- printf("+");
- else printf("/");
- }
- for(int i=0;i<padding;i++)
- printf("=");
- printf("\n");
- }
- int main()
- {
- char a[20]={0, 0, 1, 1};
- char b[20]={0};
- encode(a,4,b);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement