gpt4 book ai didi

c - 将偏移量打印为十六进制,但在 'two digits' 对中

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:36 25 4
gpt4 key购买 nike

我想将我的变量“offset”的前 6 位数字打印为十六进制,但首先是前两位数字,然后是接下来的两位数字,最后是数字。我想每次打印偏移量的特定区域。

uint32_t offset = 0;
//iterate offset to a specific point
printf("%06X ", offset);
//result is for example 989680

我想要的:

uint32_t offset = 0;
//iterate offset to a specific point
printf("%02X", offset);
printf("%02X", offset);
printf("%02X ", offset);
//result should be 989680 but is logically 989898

最后一段代码中的打印输出语句必须出现三次,不能一次出现

//I dont want this
printf("%02X, %02X, %02X ", offset);

我想我必须用指针来做这件事,但我是 c 语言的新手。

最佳答案

对于 uint16_t,您的十六进制值太长,请尝试使用 uint32_t。像这样的东西:

#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>

int main(void)
{
uint32_t offset = 0x989680;

printf("%02"PRIX32" ", (offset & 0x00ff0000) >> 16);
printf("%02"PRIX32" ", (offset & 0x0000ff00) >> 8);
printf("%02"PRIX32" ", (offset & 0x000000ff) >> 0);
return 0;
}

输出:

98 96 80

关于c - 将偏移量打印为十六进制,但在 'two digits' 对中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45551708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com