如何将 int 转换为十六进制数并在 c 中将其打印为 3 位数字?
How can i convert an int to a hexadecimal number and print it as a 3 digit number in c?
我需要将 int 编码为十六进制数,我知道 int 不会占用超过 3 个十六进制数字。如果需要,我需要在数字中添加零。这样 7A 将打印为 07A。
所以我需要编写一个函数,可以将 int 转换为十六进制并在数字少于 3 个十六进制数字时添加零。
我试图让它工作,但我只找到了将 int 转换为代表转换后的十六进制数的字符串的函数。
谢谢。
由于基本转换的概念仅在数字的文本表示的上下文中有意义,我假设您的意思是“我想将 int
表示为 3 位十六进制数,如果不是至少 3 位数字错误,则带前导零。
这很简单:
int myValue = /*whatever*/;
char strNum[10];
snprintf(strNum, 10, "%.3X", myValue);
strNum
现在将包含 myValue
的十六进制表示。如果它的长度小于三位数,它将用零填充直到它的长度为 3.
我需要将 int 编码为十六进制数,我知道 int 不会占用超过 3 个十六进制数字。如果需要,我需要在数字中添加零。这样 7A 将打印为 07A。
所以我需要编写一个函数,可以将 int 转换为十六进制并在数字少于 3 个十六进制数字时添加零。
我试图让它工作,但我只找到了将 int 转换为代表转换后的十六进制数的字符串的函数。
谢谢。
由于基本转换的概念仅在数字的文本表示的上下文中有意义,我假设您的意思是“我想将 int
表示为 3 位十六进制数,如果不是至少 3 位数字错误,则带前导零。
这很简单:
int myValue = /*whatever*/;
char strNum[10];
snprintf(strNum, 10, "%.3X", myValue);
strNum
现在将包含 myValue
的十六进制表示。如果它的长度小于三位数,它将用零填充直到它的长度为 3.