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

2022-09-04 06:44:07

在我正在处理的java项目中,项目的某些部分以前是由其他人用C编写的,现在我需要用Java编写相同的内容。

C 代码中有一个用于打印到文件的语句:

fprintf(ff, "%04X ", image[y*width+x]);

首先,我不确定.我认为这意味着如果长度为五或更多,则仅打印最左侧的四个字符。为了在Java中做同样的事情,我想过使用操作来掩盖值%04Ximage[i]and

 image[i] & 0xFFFF

有人可以告诉我Java的正确含义以及如何做同样的事情吗?谢谢。%04X


答案 1

让我们将格式代码分解为其单独的部分:"%04X"

  • 这意味着它将打印一个十六进制整数,对于大的十六进制字母XX
  • 这意味着数字将以左对齐方式打印,至少为四位数字,如果少于四位数字,则打印空格4
  • 这意味着如果少于四位数字,它将打印前导零。0

答案 2

该值的格式为具有四位数字和前导零的十六进制整数。Java 使用相同的格式字符串语法。你可以在Formatter的javaDoc中找到它。

摘录:

'x', 'X'     integral    The result is formatted as a hexadecimal integer

A 相关功能有

// 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,它通常是控制台,但可以重定向到文件或其他东西


推荐