打印
[实用程序源码及工具软件]

VC6下C++的int2hex64()和hex2int64()

[复制链接]
171|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2023-9-18 23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#pragma once

#include <iostream>

#include <iomanip> //std::hex, std::setw, std::setfill
template <class T>
T hex2int(string hexstr) {
        istringstream intstream(hexstr);
        T val;
        intstream >> hex >> val;
        return val;
}

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

uint64_t hex2int64(string hexstr) {
        uint64_t val = 0;
        if (hexstr.length() > 8) {
                val = hex2int<uint32_t>(hexstr.substr(0, hexstr.length() - 8));
                val <<= 32;
                val |= hex2int<uint32_t>(hexstr.substr(hexstr.length() - 8, 8));
        }
        else {
                val = hex2int<uint32_t>(hexstr);
        }
        return val;
}
string int2hex64(uint64_t val) {
        return int2hex<uint32_t>(val >> 32, 8) + int2hex<uint32_t>(val & 0xffffffff, 8);
}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

1460

主题

21619

帖子

506

粉丝