📄 bintoasc.c
字号:
#include "syscfg.h"#ifdef __cplusplus#if __cplusplusextern "C"{#endif #endif #include "aos.h" U8 QuestionMarkToa( U8 ucChar );U8 aToQuestionMark( U8 ucChar );U8 QuestionMarkToa( U8 ucChar ){ if (ucChar == 0x3F) { return 0x61; } return ucChar;}U8 aToQuestionMark( U8 ucChar ){ if (ucChar == 0x61) { return 0x3F; } return ucChar;}S32 BinToAsc(U8 *uc_Bin, S32 i_BinLen, S8 *c_AscBuf, S32 i_AscLen){ U32 l; S32 i;#ifdef DEBUG if(i_BinLen % 3 != 0) return -1; if(i_AscLen < (i_BinLen / 3) * 4 ) return -1;#endif for(i = 0; i < i_BinLen; i += 3) { l = *(uc_Bin)++ << 8; l |= *(uc_Bin)++; l <<= 8; l |= *(uc_Bin)++; *c_AscBuf ++ = (S8)QuestionMarkToa((U8)(((l >> 18) & 0x3f) + 0x21)); *c_AscBuf ++ = (S8)QuestionMarkToa((U8)(((l >> 12) & 0x3f) + 0x21)); *c_AscBuf ++ = (S8)QuestionMarkToa((U8)(((l >> 6) & 0x3f) + 0x21)); *c_AscBuf ++ = (S8)QuestionMarkToa((U8)((l & 0x3f) + 0x21)); } (void)i_AscLen; return 0;}S32 AscToBin(U8 *uc_Bin, S32 i_BinLen, S8 *c_AscBuf, S32 i_AscLen){ S32 i; U32 ul_Value; for(i = 0; i < i_AscLen; i += 4) { ul_Value = aToQuestionMark(*(U8 *)c_AscBuf) - 0x21; ul_Value <<= 6; c_AscBuf ++; ul_Value |= aToQuestionMark(*(U8 *)c_AscBuf) - 0x21; c_AscBuf ++; ul_Value <<= 6; ul_Value |= aToQuestionMark(*(U8 *)c_AscBuf) - 0x21; c_AscBuf ++; ul_Value <<= 6; ul_Value |= aToQuestionMark(*(U8 *)c_AscBuf) - 0x21; c_AscBuf ++; *(uc_Bin + 2) = (U8)(ul_Value & 0xff); ul_Value >>= 8; *(uc_Bin + 1) = (U8)(ul_Value & 0xff); ul_Value >>= 8; *uc_Bin = (U8)(ul_Value & 0xff); uc_Bin += 3; } (void)i_BinLen; return AOS_SUCC;}#ifdef __cplusplus#if __cplusplus}#endif #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -