gpt4 book ai didi

c - ID 的单个字符转为字符串

转载 作者:行者123 更新时间:2023-11-30 16:01:44 25 4
gpt4 key购买 nike

以下代码片段:

 unsigned char * get_id(unsigned char *buffer)
{
unsigned int i;

for(i=0; i<8;i++)
buffer[i] = read_byte(); // Returns uint8_t

return buffer;
}

最后我得到了一个 64 位 ID。我想调用 get_id() 并使用 printf 打印返回值(ID)。我该怎么做?

我的解决方案是:

unsigned char tmp_buf[8]; 
unsigned char *ptr;

ptr = get_id(tmp_buf);
printf("ID = %02x %02x %02x %02x %02x %02x %02x %02x\n", ptr[7], ptr[6], ptr[5]...);

这太糟糕了,我不太喜欢它,但是如何在“一个”小 printf 语句中打印它?

最佳答案

只需将其打印为 64 位整数即可。您甚至不需要字节交换任何内容。

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

union {
uint8_t buf[8];
uint64_t val;
} buffer;

uint8_t *ptr = get_id(buffer.buf);
assert(ptr && "should get id");
printf("ID = %"PRIx64"\n", buffer.val);

关于c - ID 的单个字符转为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6179549/

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