HexCodingStream.cpp
上传用户:kx_jwh
上传日期:2021-09-03
资源大小:76k
文件大小:1k
源码类别:

STL

开发平台:

Visual C++

  1. /* vim: set tabstop=4 : */
  2. #include "HexCodingStream.h"
  3. #include "DataInput.h"
  4. #include <sstream>
  5. namespace febird {
  6. // '0' == 0x30
  7. // 'a' == 0x61
  8. // 'A' == 0x41
  9. const unsigned char G_hex_val_hexTab[] = 
  10. {
  11. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  12. 255, 255, 255, 255, 255, 255,
  13. // below, begin with '0' + 16 = 0x40
  14. 255,
  15. 0xA, 0xB, 0xC, 0xD, 0xE, 0xF,
  16. 255, 255, 255, 255, 255,
  17. 255, 255, 255, 255, 255,
  18. // below, begin with 'A' + 16 = 0x51
  19. 255, 255, 255, 255,
  20. 255, 255, 255, 255,
  21. 255, 255, 255, 255,
  22. 255, 255, 255, 255,
  23. // below, begin with 'a' = 0x61
  24. 0xA, 0xB, 0xC, 0xD, 0xE, 0xF,
  25. };
  26. void invalid_hex_char(unsigned char ch, const char* func)
  27. {
  28. std::ostringstream oss;
  29. oss << "invalid hex char(ch=" << char(ch) << ",ascii=" << int(ch) << ") in func: " << func;
  30. throw DataFormatException(oss.str());
  31. }
  32. } // namespace febird