[英]Meaning of %04X in C and how to write the same in java
在我正在研究的java项目中,项目的某些部分之前由C中的其他人编写,现在我需要在Java中编写相同的内容。
C代码中有一个用于打印到文件的语句:
fprintf(ff, "%04X ", image[y*width+x]);
首先,我不确定%04X
的含义。 我认为这意味着如果image[i]
长度为5或更长,那么只打印最左边的四个字符。 为了在Java中做同样的事情,我想到了使用and
操作掩盖值
image[i] & 0xFFFF
有人可以告诉我%04X
的正确含义以及如何在Java中做同样的事情? 谢谢。
该值被格式化为十六进制整数,具有四位数和前导零。 Java使用相同的格式字符串语法。 您可以在Formatter
的javaDoc中找到它。
摘抄:
'x', 'X' integral The result is formatted as a hexadecimal integer
相关的功能是
// create a String with the formatted value.
String formatted = String.format("%04X ", image[y*width+x]);
// write a formatted value to the console (*)
System.out.printf("%04X ", image[y*width+x]);
(*) - 将它写入PrintStream
System.out
,它通常是控制台,但可以重定向到文件或其他东西
让我们将格式代码"%04X"
分解为单独的部分:
X
表示它将打印一个十六进制的整数,大十六进制的大X
4
表示数字将打印左对齐,至少有四位数,如果少于四位,则打印空格 0
意味着如果少于四位数,它将打印前导零。 %04X中的X表示十六进制,ABCDEF代替abcdef,04表示打印至少四位数,填充前导零。 如果需要,它将使用更多数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.