如题
解决方案 »
- 谁可以传Iphlpapi.h和Iphlpapi.lib文件给我呀.
- 聊天软件开发小结
- 有关TCP客户端程序的建立问题
- 请问如何delete一个CImageList
- 在delphi中,我们有很多第三方工具可是实现格式化源代码,而不用自己一行一行的整理。
- 奇怪的内存问题,高手帮忙看看
- 怎样多态时使用友元?
- VC2010下创建的COM控件,MFC调用出错
- 使用ado控件时,如何才能用列名来取得列值?
- 我今天发的一个帖子怎么不见了
- vckbase,vchelp上的代码怎么少了很多呢?谁告诉我为什么?
- 请大家帮忙发 iphlpapi.h, iprtrmib.h, ipexport.h, iptypes.h 这四个文件给我,先谢了[email protected]
其中一种简单的方法就是用两个字节,每个字节分别存储原字节的高四位和低四位
这样实际上每个字节只用到了 0~15BYTE byNew[2];
BYTE byOld = 0xFF;byNew[0] = byOld >> 4;
byNew[1] = byOld & 0xFF;
BYTE byOld = 0xFF;byNew[0] = byOld >> 4; --〉为 15
byNew[1] = byOld & 0xFF;--〉为 255
static BYTE Table(BYTE ot)
{
if(ot>=0 && ot<=25)return 'A' + ot;
else if(ot>=26 && ot<=51)return 'a' + (ot-26);
else if(ot>=52 && ot<=61)return '0' + (ot-52);
else if(ot==62)return '+';
else if(ot==63)return '/';
else return '=';
}void Base64(const char* pSrc, char* pszCode)
{
BYTE ot;
int i;
i=0;
while(pSrc[i])
{
ot = (0xFC & pSrc[i])>>2; *pszCode = Table(ot); i++; pszCode++;
if(!pSrc[i])
{
ot = (0x03 & pSrc[i-1])<<4; *pszCode = Table(ot); pszCode++;
break;
}
ot = (0x03 & pSrc[i-1])<<4 | (0xF0 & pSrc[i])>>4; *pszCode = Table(ot); pszCode++; i++;
if(!pSrc[i])
{
ot = (0x0F & pSrc[i-1])<<2; *pszCode = Table(ot); pszCode++;
break;
}
ot = (0x0F & pSrc[i-1])<<2 | (0xC0 & pSrc[i])>>6; *pszCode = Table(ot); pszCode++;
ot = 0x3F & pSrc[i]; *pszCode = Table(ot), i++; pszCode++;
}
*pszCode = NULL;
}