ByteUtil.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef _UTILS_TIME_BYTE_UTIL_H_
  2. #define _UTILS_TIME_BYTE_UTIL_H_
  3. #include <string>
  4. #include <iostream>
  5. #include <sstream>
  6. /**
  7. * @brief 字节操作类
  8. */
  9. class ByteUtil {
  10. public:
  11. static void copyUnsignedCharArray(unsigned char* source, unsigned char destination[], size_t size) {
  12. std::copy(source, source + size, destination);
  13. }
  14. // std::string byteToString(const unsigned char* bytes, unsigned long int length) {
  15. // return std::string(reinterpret_cast<const char*>(bytes), length);
  16. // }
  17. static std::string byteToString(const unsigned char* data, size_t size) {
  18. std::string result;
  19. // 将每个 unsigned char 转换为 char 并添加到结果字符串中
  20. for (size_t i = 0; i < size; ++i) {
  21. result += static_cast<char>(data[i]);
  22. }
  23. return result;
  24. }
  25. static std::string convertToString(const unsigned char* data, size_t size) {
  26. std::string dataStr = "";
  27. for (int i = 0; i < size; ++i) {
  28. char buf[1024];
  29. sprintf(buf, "%02x", data[i]);
  30. dataStr += buf;
  31. }
  32. return dataStr;
  33. }
  34. static unsigned char stringToByte(const std::string& str) {
  35. std::stringstream ss;
  36. ss << std::hex << str;
  37. unsigned int intValue;
  38. ss >> intValue;
  39. return static_cast<unsigned char>(intValue);
  40. }
  41. static std::string timestampToHex(int timestamp) {
  42. std::stringstream ss;
  43. ss << std::hex << timestamp;
  44. return ss.str();
  45. }
  46. static std::string timestampToHex(time_t timestamp) {
  47. std::stringstream ss;
  48. ss << std::hex << timestamp;
  49. return ss.str();
  50. }
  51. };
  52. #endif /* _UTILS_TIME_BYTE_UTIL_H_ */