Hello让我说我将1314173089
编号为十进制,将0x4E54B0A1
编号为十六进制。当我使用printf时,它使用0x%X
正确转换为十六进制。我真的想以某种方式将我的数字转换为十六进制,然后从十六进制数中删除例如最后两位数,因此它将是0x4E54B0
为十六进制,但在十进制中它应为5133488
并且我想要将十进制数存储在int中以用于其他事情 - 有人能帮我一把吗?到目前为止,我只能打印它,但我不知道我将如何自己做这样的十六进制函数..
答案 0 :(得分:7)
简单地除以0x100
:
#include <iostream>
int main()
{
const unsigned int a = 0x4E54B0A1;
std::cout << "0x" << std::hex << a / 0x100 << std::endl;
}
这会打印0x4e54b0
。
答案 1 :(得分:1)
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;
}