转换为十六进制并删除最后两位数字

Convert to hex and delete last two digits

本文关键字:两位 数字 最后 十六进制 删除 转换      更新时间:2023-10-16

Hello让我们说i数字1314173089为十进制,0x4E54B0A1为十六进制。当我使用printf时,它会使用0x%X正确地转换为十六进制。我真的很想以某种方式将我的数字转换为十六进制,然后从十六进制数字中删除最后两位数字,这样它将是0x4E54B0作为十六进制,但在十进制中,它将是5133488,我想将十进制数字存储在int中,用于其他用途-有人能帮我吗?到目前为止,我只能打印它,但我不知道我自己该如何做这样一个十六进制函数。。

简单地除以0x100:

#include <iostream>
int main()
{
    const unsigned int a = 0x4E54B0A1;
    std::cout << "0x" << std::hex << a / 0x100 << std::endl;
}

这将打印0x4e54b0

unsigned int hexFunction(const unsigned int a) {
    return a / 0x100;
}
int main()
{
    const unsigned int a = 0x4E54B0A1;
    unsigned int hex = hexFunction(a);
    std::cout << "Hex = 0x" << std::hex << hex;
    std::cout << "tDec = " << std::dec << hex << std::endl;
    return 0;
}