[实用程序源码及工具软件] VC6下C++的int2hex64()和hex2int64()

[复制链接]
 楼主| hotpower 发表于 2023-9-18 23:03 | 显示全部楼层 |阅读模式
  1. #pragma once

  2. #include <iostream>

  3. #include <iomanip> //std::hex, std::setw, std::setfill
  4. template <class T>
  5. T hex2int(string hexstr) {
  6.         istringstream intstream(hexstr);
  7.         T val;
  8.         intstream >> hex >> val;
  9.         return val;
  10. }

  11. template <class T>
  12. string int2hex(T val, int size) {
  13.         ostringstream hexstream;
  14.         hexstream << hex << setw(size) << setfill('0') << setiosflags(ios::uppercase) << val;
  15.         return hexstream.str();
  16. }

  17. uint64_t hex2int64(string hexstr) {
  18.         uint64_t val = 0;
  19.         if (hexstr.length() > 8) {
  20.                 val = hex2int<uint32_t>(hexstr.substr(0, hexstr.length() - 8));
  21.                 val <<= 32;
  22.                 val |= hex2int<uint32_t>(hexstr.substr(hexstr.length() - 8, 8));
  23.         }
  24.         else {
  25.                 val = hex2int<uint32_t>(hexstr);
  26.         }
  27.         return val;
  28. }
  29. string int2hex64(uint64_t val) {
  30.         return int2hex<uint32_t>(val >> 32, 8) + int2hex<uint32_t>(val & 0xffffffff, 8);
  31. }


您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:[url=http://www.21ic.com/tools/HotWC3_V1.23.html]

1460

主题

21619

帖子

508

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:[url=http://www.21ic.com/tools/HotWC3_V1.23.html]

1460

主题

21619

帖子

508

粉丝
快速回复 在线客服 返回列表 返回顶部