作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在处理的代码要求我以十六进制打印类型为 uint32_t
的变量,填充为 0,最小长度为 8。到目前为止,我一直在使用该代码来执行此操作是:
printf("%08lx\n",read_word(address));
其中 read_word 返回类型 uint32_t。我用过jx,llx等格式都没有用,请问有正确的格式可以用吗?
编辑:
我发现问题出在我传递的内容上。函数 read_word 从 uint32_t vector 返回一个值。似乎这是导致十六进制问题的问题。这是按引用/值传递的问题吗?如何解决?
读字函数:
uint32_t memory::read_word (uint32_t address) {
if(address>(maxWord)){
return 0;
}
return mem[address];
}
内存减速:
std::vector<uint32_t> mem=decltype(mem)(1024,0);
最佳答案
要在 C++ 中执行此操作,您需要滥用填充和宽度操纵器:
#include <iostream>
#include <iomanip>
#include <cstdint>
int main()
{
uint32_t myInt = 123456;
std::cout << std::setfill('0') << std::setw(8) << std::hex << myInt << '\n';
}
输出
0001e240
对于 C,它变得有点迟钝。你使用 inttypes.h
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
int main()
{
uint32_t myInt = 123456;
printf("%08" PRIx32 "\n", myInt);
return 0;
}
输出
0001e240
请注意,在 C 中,inttypes.h
中的常量与语言字符串连接功能一起使用,以形成所需的格式说明符。您只需提供零填充和最小长度作为序言。
关于c++ - 如何从 uint32_t 打印十六进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43028865/
我是一名优秀的程序员,十分优秀!