//crypt by SSZCPG //black c0de
Посилання видалено
//started: 13.09.02
/*
crypt.exe number_in_decimal
by default cryptr output in crypt.bcd file
*/
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <math.h>
char *dectobin(int, int jmp=0); // jmp=0 - used 8bit digit grid, jmp=1 - 4bit
fstream outf;
char outfn[]="crypt.bcd"; //change this, if you want change output file-name
int main(int argc, char *argv[]){
int r=0;
int datasize=0;
if(argc<2) {
cerr << "use: <program> <data>\n";
return 0;
}
outf.open(outfn, ios::out);
if(!outf){
cerr << outfn << " error\n";
return 0;
}
datasize=strlen(argv[1]);
char *data = new char[datasize+1];
for(int i=0; i<datasize;i++) data
='0';
data[datasize]='\0';
data=argv[1];
r=(int)(log(atoi(data)+1)/log(2)+1);
outf << "dec: " << data << endl;
outf << "bin: " << dectobin(atoi(data))<<endl;
outf << "razr: " << r;
//for(int j=0; j<datasize; j++) outf << dectobin(int(data[j]));
delete[] data;
outf.close();
cout << outfn << " ok!";
return 0;
}
//---[ dectobin ]---------------------------------------------------------------
char *dectobin(int n, int jmp){
int ost=0;
int i=0;
int razr=0;
static char pref[] = "0000";
//static char byte[]="00000000";
const int radix=2;
char *swap = new char[1];
char *byte = new char[razr+1];
razr=(int)(log(n+1)/log(2)+1);
for(i=0; i<razr; i++) byte='0';
byte[razr]='\0';
itoa(n, swap, 10);
switch(jmp){
case 0: i=strlen(byte)-1; break;
case 1: i=strlen(pref)-1; break;
default : i=8;
};
do{
ost=n-(int(n/radix)*radix);
n=int(n/radix);
// if(ost==1) itoa(ost,swap,10);
// if(ost==0) itoa(0,swap,10);
itoa(ost,swap,10);
switch(jmp){
case 0: byte=swap[0];
case 1: pref=swap[0];
};
i--;
}while(n>0);
delete[] swap;
switch(jmp){
case 0: return byte;
case 1: return pref;
};
}