|
|
#pragma once
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
#define LITTLE_ENDIA 0 // 小端字节序
|
|
|
#define BIG_ENDIA 1 // 大端字节序
|
|
|
|
|
|
class Utils
|
|
|
{
|
|
|
public:
|
|
|
Utils(){};
|
|
|
virtual ~Utils(){};
|
|
|
|
|
|
// 字符转十六进制
|
|
|
//static std::string charToHexStr(unsigned char ch);
|
|
|
// 字符串转十六进制
|
|
|
//static std::string strToHexStr(std::string str, std::string separator = "");
|
|
|
|
|
|
// 字符转byte字符串
|
|
|
static std::string charToByteStr(unsigned char val);
|
|
|
// 短整型转byte字符串
|
|
|
static std::string shortToByteStr(unsigned short val);
|
|
|
// 整型转byte字符串
|
|
|
static std::string intToByteStr(unsigned int val);
|
|
|
|
|
|
// byte字符串转字符
|
|
|
static unsigned char byteStrToChar(std::string val);
|
|
|
// byte字符串转短整型
|
|
|
static unsigned short byteStrToShort(std::string val);
|
|
|
// byte字符串转整形
|
|
|
static unsigned int byteStrToInt(std::string val);
|
|
|
|
|
|
static unsigned short charToShort(unsigned char c1, unsigned char c2);
|
|
|
|
|
|
|
|
|
//static std::string ucharToHexStr(const unsigned char& c);
|
|
|
static std::string strToHexStr(const std::string& str);
|
|
|
static std::string hexStrToStr(const std::string& hexStr);
|
|
|
|
|
|
static std::string ucharToStr(const unsigned char& val);
|
|
|
static std::string ushortToStr(const unsigned short& val);
|
|
|
static std::string uintToStr(const unsigned int& val);
|
|
|
static std::string ulongToStr(const unsigned long& val);
|
|
|
|
|
|
static std::string charToStr(const char& val);
|
|
|
static std::string shortToStr(const short& val);
|
|
|
static std::string intToStr(const int& val);
|
|
|
static std::string longToStr(const long& val);
|
|
|
|
|
|
static std::string ucharToHexStr(const unsigned char& val) { return Utils::strToHexStr(Utils::ucharToStr(val)); }
|
|
|
static std::string ushortToHexStr(const unsigned short& val) { return Utils::strToHexStr(Utils::ushortToStr(val)); }
|
|
|
static std::string uintToHexStr(const unsigned int& val) { return Utils::strToHexStr(Utils::uintToStr(val)); }
|
|
|
static std::string ulongToHexStr(const unsigned long& val) { return Utils::strToHexStr(Utils::ulongToStr(val)); }
|
|
|
|
|
|
static std::string charToHexStr(const char& val) { return Utils::strToHexStr(Utils::charToStr(val)); }
|
|
|
static std::string shortToHexStr(const short& val) { return Utils::strToHexStr(Utils::shortToStr(val)); }
|
|
|
static std::string intToHexStr(const int& val) { return Utils::strToHexStr(Utils::intToStr(val)); }
|
|
|
static std::string longToHexStr(const long& val) { return Utils::strToHexStr(Utils::longToStr(val)); }
|
|
|
|
|
|
static unsigned char strToUchar(const std::string& str);
|
|
|
static unsigned short strToUshort(const std::string& str);
|
|
|
static unsigned int strToUint(const std::string& str);
|
|
|
static unsigned long strToUlong(const std::string& str);
|
|
|
|
|
|
static char strToChar(const std::string& str);
|
|
|
static short strToShort(const std::string& str);
|
|
|
static int strToInt(const std::string& str);
|
|
|
static long strToLong(const std::string& str);
|
|
|
|
|
|
static unsigned char hexStrToUchar(const std::string& str) { return Utils::strToUchar(Utils::hexStrToStr(str)); }
|
|
|
static unsigned short hexStrToUshort(const std::string& str) { return Utils::strToUshort(Utils::hexStrToStr(str)); }
|
|
|
static unsigned int hexStrToUint(const std::string& str) { return Utils::strToUint(Utils::hexStrToStr(str)); }
|
|
|
static unsigned long hexStrToUlong(const std::string& str) { return Utils::strToUlong(Utils::hexStrToStr(str)); }
|
|
|
|
|
|
static char hexStrToChar(const std::string& str) { return Utils::strToChar(Utils::hexStrToStr(str)); }
|
|
|
static short hexStrToShort(const std::string& str) { return Utils::strToShort(Utils::hexStrToStr(str)); }
|
|
|
static int hexStrToInt(const std::string& str) { return Utils::strToInt(Utils::hexStrToStr(str)); }
|
|
|
static long hexStrToLong(const std::string& str) { return Utils::strToLong(Utils::hexStrToStr(str)); }
|
|
|
|
|
|
static void testTransOfTypeAndStr();
|
|
|
|
|
|
|
|
|
|
|
|
// 检查字节序
|
|
|
static int byteOrder();
|
|
|
|
|
|
static void Sleep(int msec);
|
|
|
|
|
|
static std::string readFile(const std::string& fileName);
|
|
|
static void writeFile(const std::string& fileName, const std::string& content);
|
|
|
|
|
|
// 获取char字节的某一位数据 : 7 6 5 4 3 2 1 0
|
|
|
static unsigned char charBit(unsigned char c, unsigned char pos) { return ((c >> pos) & 0x01); }
|
|
|
|
|
|
|
|
|
private:
|
|
|
static std::string m_hexTable;
|
|
|
};
|
|
|
|
|
|
|