- bool strtobyte(const char* source, byte* dest,const unsigned int& destsize)
- {
- if (strlen(source) % 2 || strlen(source)/2 > destsize)
- {
- return false;
- }
- for (int i = 0; i != strlen(source); i++)
- {
- if (i%2 == 0)
- {
- const char* pc = source + i;
- byte* pb = dest + i/2;
- if((*pc >= '0') && (*pc <= '9'))
- {
- *pb = 0x0+(*pc-'0');
- }
- else if((*pc >= 'A') && (*pc <= 'F'))
- {
- *pb = 0xA+(*pc-'A');
- }
- else
- {
- return false;
- }
- }
- else
- {
- const char* pc = source + i;
- byte* pb = dest + (i - 1)/2;
- *pb <<= 4;
- if((*pc >= '0') && (*pc <= '9'))
- {
- *pb+=(*pc-'0');
- }
- else if((*pc >= 'A') && (*pc <= 'F'))
- {
- *pb += (0xA+(*pc-'A'));
- }
- else
- {
- return false;
- }
- }
- }
- return true;
- }
十六进制 字符串 赋值到 byte
最新推荐文章于 2021-11-15 12:24:07 发布