gpt4 book ai didi

c - 如何在单个字节上将十进制数保存为十六进制?

转载 作者:行者123 更新时间:2023-11-30 20:34:48 24 4
gpt4 key购买 nike

#include <stdio.h>
int main()
{
int x = 255;
char hex[4] = {0};
hex[0] = 0x02;
hex[1] = 0x20;
hex[2] = 0xef;
hex[3] = x;
for(int i = 0; i < 4; i++)
printf("%X ", hex[i]);
}

输出“2 20 FFFFFFEF FFFFFFFF”。应该改变什么才能输出“02 20 EF FF”?

最佳答案

问题是数据溢出。当 0xef = 239 时,char 为 -128 ~ 127。因此,您可以使用类型 intshort 或只是 unsigned char ,如下所示:

#include <stdio.h>
int main()
{
int x = 255;
unsigned char hex[4] = {0};
hex[0] = 0x02;
hex[1] = 0x20;
hex[2] = 0xef;
hex[3] = x;
for(int i = 0; i < 4; i++)
printf("%02X ", hex[i]);
}

关于c - 如何在单个字节上将十进制数保存为十六进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41407425/

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