ascii码就是最基本的一个字节的二进制数据,但不是直接相等,因为ascii码不仅表示数字,还要表示字符,它们统一安排在一起顺序排序成表,其中的顺序号即为我们通称的ascii码。 顺序0~9首先被用来表示字符(null)/没有任何书写笔画的空着的‘空’字符到(tab)/制表跳格键符,数学的数字0~9被顺延至序号为48~57位置,所以数字0在ascii的序号即位置为48,而48的二进制数值为110000,同理,数字2的序号为50,50的二进制数值为110010,写成一个字节为00110010,这正是数学数字2的ascii码。
BOOL CUtility::Bin2ASCII(
const BYTE* pBuffer,//source buffer
BYTE* pResultBuffer,//dest buffer
unsigned long ulSize //source buffer length
)
{
const BYTE* pCurBype = pBuffer;
const BYTE* pEnd = pBuffer + ulSize;
BYTE* pCurDestBuf = pResultBuffer;
int iCount = 0;
while( pCurBype != pEnd )
{
BYTE bCurByte = *pCurBype;
unsigned char lHigh = (BYTE)(bCurByte >> 4);
if( lHigh <= 9)
{
*pCurDestBuf = (BYTE)(lHigh + '0');
}
else
{
*pCurDestBuf = (BYTE)(lHigh -10 + 'a&
|