c - printf() 格式化为十六进制

标签 c printf hex

为什么将十六进制数字打印为带前导零的 8 位数字时,%#08X 显示与 0x%08X 相同的结果?

当我尝试使用前者时,08 格式标志被删除,它不适用于 8

最佳答案

# 部分在输出字符串中为您提供了一个 0x0x 计入 08 部分中列出的“8”个字符。如果要相同,则需要要求 10 个字符。

int i = 7;

printf("%#010x\n", i);  // gives 0x00000007
printf("0x%08x\n", i);  // gives 0x00000007
printf("%#08x\n", i);   // gives 0x000007

同时改变 x 的大小写,影响输出字符的大小写。

printf("%04x", 4779); // gives 12ab
printf("%04X", 4779); // gives 12AB

关于c - printf() 格式化为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14733761/

相关文章:

c - 将文本文件加载到二维数组中,然后与文字进行比较

php - 如何用 C 创建一个支持 PHP 页面的网络服务器?

string - 如何 fmt.Printf 带有千位逗号的整数

c - 在 C 程序中使用 sprintf()

c - scanf 没有第二次读取输入

c - 为 ARM9 Montavista Linux 交叉编译 OpenCV 时出现问题

无法打印 long long 双输出

c++ - 十六进制的 4 字节日期时间转换为可读

java - 为什么单字节有前导 ffffff

batch-file - 在 cmd.exe 批处理文件中格式化十六进制序列