如何在PHP或Java中打印十六进制数字

时间:2009-08-13 01:26:28

标签: java php algorithm base-conversion

我需要打印一些数据(格式有点奇怪)。我使用if($ num%10 == 9)在PHP中编写它,但我无法获得正确的输出。

所以看看这个例子。 我们在文件夹中有x个文件。对于这个例子,x = 36。 X始终是已知的。

输出应如下所示:

01
02
03
04
05
06
07
08
09
0a
0b
0c
0d
0e
0f
10
11
...
19
1a
...
1f
20
...
24

对于这么长的“清单”感到抱歉,但我相信你现在知道我需要什么。 因此,在每个以9结尾的数字之后,我们有num(a,b,c,d,e,f),然后是数字,它跟在前面的数字后面,结尾是9。 (例如3a ... 3f,40..49)。 最重要的是印刷线的数量必须等于x。

如果可能的话,我更喜欢PHP或Java代码,但我会非常感谢任何帮助。

5 个答案:

答案 0 :(得分:30)

对于Java:

System.out.println(Integer.toHexString(number));

System.out.println(String.format("%x", number));

后者有更多格式化十六进制字符串的选项。

答案 1 :(得分:9)

您需要以十六进制表示法打印数字1到30。为每一行尝试此方法:

dechex ( int $number )

答案 2 :(得分:7)

    for ( int i=1 ; i <= x; i++ ) {
        System.out.printf("%02x\n", i);
    }

答案 3 :(得分:4)

这将打印十六进制01-24(数字前面的0填充小于10)

for ($i = 1; $i <= 36; $i++) {
    printf("%02x\n", $i);
}

答案 4 :(得分:1)

<?php
function blah($n) {
  for($i=1;$i<=$n;$i++) {
    printf("%02x\n", $i);
  }
}

blah(36);
?>

01
02
03
04
05
06
07
08
09
0a
0b
0c
0d
0e
0f
10
11
12
13
14
15
16
17
18
19
1a
1b
1c
1d
1e
1f
20
21
22
23
24