C学习:整型数据格式化输出控制的细节

C学习:整型数据格式化输出控制的细节

本文小结平常C语言编程中遇到的整型数据格式化输出控制知识,留个笔记方便查阅。

原理规则


  • 位宽控制
    • h, l, ll 分别指定位宽:16位,32位,64位
  • 进制控制
    • o, x, d, u分别决定进制:八进制、十六进制、十进制、十进制
  • 符号控制
    • u, d分别决定十进制里的符号位,u为无符号数,d为有符号数
  • 排序规则
    • 位宽+进制+符号,如输出16位十进制无符号数:%hu

补充说明:

  • 无8位的位宽控制符,8位位宽的数字统一扩展成高位输出
  • o/O, X/x控制八或十六进制的大小写输出。输出前缀可自行加上相应的0x/0X以区分
  • 十六进制、二进制、八进制统一按无符号输出,若为有符号数,按首位去解读

常用例子


总结如下表:

位宽 进制 符号 格式化控制
8位 十进制 %hd
8位 十六进制 - %hx
16位 十进制 %hd
16位 十进制 %hu
16位 十六进制 - %hx
32位 十进制 %d or %ld
32位 十进制 %u or %lu
32位 十六进制 - %x or %lx
64位 十进制 %lld
64位 十进制 %llu
64位 十六进制 - %llx

部分说明

  • 8位位宽的数字,无单独的输出控制符,可以按16位/32位的方式指定扩展输出。若为8位的字符,则用%c输出。
  • 32位的数字输出可以不加修饰符l,进制符u/d/x默认32位输出。

具体不同整数类型打印格式应用:

  • int %d unsigned int %u
  • long %ld unsigned long %lu
  • long long %lld unsigned long long %llu

更多进阶内容,请查阅书籍:《C程序设计语言》。

相关文章


  1. C学习:%p和%x、%lx、%hx、%llx区别辨析,link

猜你喜欢

转载自blog.csdn.net/qq_17256689/article/details/129866387