繁体   English   中英

C中%04X的含义以及如何在java中编写相同内容

[英]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使用相同的格式字符串语法。 您可以在FormatterjavaDoc中找到它。

摘抄:

'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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM