用VC++6.0编写BASE64编码转换程序时遇到的小问题?

来源:百度知道 编辑:UC知道 时间:2024/06/22 08:46:39
Base64编码,(即从二进制文件取出每3字节一组,共24位平分为4组6位数,6位二进制可以表示“A~Z,a~z,0~9,+,-”共64个字符。转换后编码文本长度用"="补足)
目前遇到的问题:如何控制数组指针每次读3个字节,转换为4个字符,高人指点要用到映射模板map,但不太会用。请达人详解

1.定义结构数组指针
struct bit_struct
{
unsigned data1:6;
unsigned data2:6;
unsigned data3:6;
unsigned data4:6;
};//定义3个8位变量的结构用来读\存文件用
bit_struct *pbit_struct;
---------------------------
2.读取文件*.dat的长度(字节数)
DWORD dwFileLen=file.GetLength();
//file 是在打开文件时声明的CFile的对象
//CFile file;
-------------------------
3.定义结构数组的尺寸
DWORD dwstrLen=dwFileLen*8/24;
//dwstrLen是你定义的结构体的字节数(注意:不是结构数组的字节数)
pbit_struct=new SiWei[dwstrLen];
//定义结构数组的尺寸
-------------------------
4.从文件中以24位向结构数组中写入
file.Read(pstr,dwFileLen);
--------------------------
5.将数值转为相应的字符
先略,让我想一想
比如:000000 000010 000010 000001 输出为accb 这里,我不太明白.
如果accb是数值的话,应该对应的二进制为
1010110011001011
如果accb是字符,对应的二进制为
1100001 1100011 1100011 1100010
你是想怎样转换呀!

-----------------------------
6.向文件中写入转换后的数据
file.Write(pstr,dwFileLen);
//这条语句我没有