c++ hexstr转unsigned char

复制代码
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <pthread.h>
#include <fcntl.h>
#include <stdbool.h>

#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <string.h>

#include <fstream>
#include <iostream>
using namespace std;
class CAfcOpCommonTool
{
  public:
      bool HexStr2UC(const char* bufStr, unsigned char& ucValue);

};

bool  CAfcOpCommonTool::HexStr2UC(const char* bufStr, unsigned char& ucValue)
{
    ucValue = 0;
    // 准备转换缓冲区
    static char buf[3], cTmp; memset((void*)buf, 0, 3);
    size_t sizeStr = strlen(bufStr);
    if(sizeStr < 1)
        return false;
    if(sizeStr == 1){
        buf[0] = '0'; buf[1] = bufStr[0];
    }
    else
        memcpy((void*)buf, (void*)bufStr, 2);
    // 转换
    for(int i=0; i<2; i++){
        cTmp = buf[i];
        ucValue = ucValue * 16;
        if(cTmp >= '0' && cTmp <= '9')
            ucValue = ucValue + (unsigned char)(cTmp - '0');
        else if(cTmp >= 'a' && cTmp <= 'f')
            ucValue = ucValue + (unsigned char)(cTmp - 'a' + 10);
        else if(cTmp >= 'A' && cTmp <= 'F')
            ucValue = ucValue + (unsigned char)(cTmp - 'A' + 10);
        else
            return false;
    }
    return true;
}

int main()
{
  unsigned char ucLineID = 0;
  string strLinenId = "1";
  char m_chCurrentStationID[9];
  CAfcOpCommonTool gclOpCommonTool;
      gclOpCommonTool.HexStr2UC(strLinenId.c_str(), ucLineID);
  sprintf(m_chCurrentStationID, "%2x",ucLineID, ucLineID);
  cout<<m_chCurrentStationID<<endl;
   cout<<"2021,新年快乐"<<endl;
   return 0;
}
复制代码

 

posted on   lydstory  阅读(581)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-01-01 cef chromuim qtwebegnier
2020-01-01 qdoc
2020-01-01 QtWebEngine

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示