65,210
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <fstream>
using namespace std;
static int pand=0;
static long xb=0;
inline int chengfang(int x1,int x2)
{
if (x2==0) return 1;
int x3=(x1);
for(;(x2)>1;(x2)--)
{
x3=x3*x1;
}
return x3;
}
ifstream fin(ar.m_strFileName,ios_base::binary);
CFile quchangdu(ar.m_strFileName,CFile::modeRead|CFile::shareDenyNone);
long n=quchangdu.GetLength();
unsigned long nn;
nn=n*2;
unsigned char *bm=new unsigned char[n];
int *b=new int[nn];
char *kekka=new char[nn];
int *citouzh=new int;
fin.read((char *)bm,n);
for (long qq=0;qq<n;qq++)
{
(*citouzh)=int(bm[qq]);
for(int p=7;p>3;p--)
{
if ((*citouzh)&(chengfang(2,p)))
{
int linshi=1;
pand=pand+(linshi<<(p-4));
}
else continue;
}
if (qq==0) xb=0;
b[xb]=pand;
switch(b[xb])
{
case 0:kekka[xb]='L' ;break;
case 1:kekka[xb]='H' ;break;
case 2:kekka[xb]='U' ;break;
case 3:kekka[xb]='O' ;break;
case 4:kekka[xb]='Z' ;break;
case 5:kekka[xb]='E' ;break;
case 6:kekka[xb]='I' ;break;
case 7:kekka[xb]='K' ;break;
case 8:kekka[xb]='A' ;break;
case 9:kekka[xb]='M' ;break;
case 10:kekka[xb]='N' ;break;
case 11:kekka[xb]='R' ;break;
case 12:kekka[xb]='F' ;break;
case 13:kekka[xb]='D' ;break;
case 14:kekka[xb]='Y' ;break;
case 15:kekka[xb]='T' ;break;
}
xb++;
pand=0;
for(int q=3;q>=0;q--)
{
if ((*citouzh)&(chengfang(2,q)))
{
int linshi=1;
pand=pand+(linshi<<q);
}
else continue;
}
b[xb]=pand;
switch(b[xb])
{
case 0:kekka[xb]='L' ;break;
case 1:kekka[xb]='H' ;break;
case 2:kekka[xb]='U' ;break;
case 3:kekka[xb]='O' ;break;
case 4:kekka[xb]='Z' ;break;
case 5:kekka[xb]='E' ;break;
case 6:kekka[xb]='I' ;break;
case 7:kekka[xb]='K' ;break;
case 8:kekka[xb]='A' ;break;
case 9:kekka[xb]='M' ;break;
case 10:kekka[xb]='N' ;break;
case 11:kekka[xb]='R' ;break;
case 12:kekka[xb]='F' ;break;
case 13:kekka[xb]='D' ;break;
case 14:kekka[xb]='Y' ;break;
case 15:kekka[xb]='T' ;break;
}
xb++;
pand=0;
}
cout<<"\n\n\n";
ofstream fout("D://OUTPUTTXT//kekka.txt",ios_base::out|ios_base::binary);
fout.write((char *)kekka,nn);
delete citouzh;
delete []b;
delete []bm;
delete []kekka;
CString s("Done!");
AfxMessageBox(s);
Office这些文档不能转化了吧!void HexDump(char *buf,int len) {
int i,j,k;
char binstr[80];
for (i=0;i<len;i++) {
if (0==(i%16)) {
sprintf(binstr,"%04x -",i);
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
} else if (15==(i%16)) {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
sprintf(binstr,"%s ",binstr);
for (j=i-15;j<=i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
} else {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
}
}
if (0!=(i%16)) {
k=16-(i%16);
for (j=0;j<k;j++) {
sprintf(binstr,"%s ",binstr);
}
sprintf(binstr,"%s ",binstr);
k=16-k;
for (j=i-k;j<i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
}
}

这么牛掰!