打印十六进制数组值

时间:2017-05-21 22:42:56

标签: c arrays

我希望输出显示如下值:0,1,2,3,4,5,6,...,A,B,C,D,E,F

我的代码:

$string = file_get_contents("/home/michael/test.json");
$json_a=json_decode($string,true);

foreach ($json_a as $key => $value){
  echo  $key . ':' . $value;
}

2 个答案:

答案 0 :(得分:0)

如果你想得到输出0,1,2,3,4,5,6,...,A,B,C,D,E,F

您必须读取数组中每个值的4个最低有效位。

因此,printf的第二个参数应该是:

temp2 [i]& 0xf

答案 1 :(得分:0)

十六进制中的

0,1,2,3,4,5,6,...,A,B,C,D,E,F应为0x00,0x01,0x02 ... 0x0f,对吧?

你拥有的 temp2 数组是0x00,0x11,0x22 ... 0xff

因此,通过简单的数学运算,我们知道要使0x11(00010001)变为0x01(000000001),我们只需要0x11(00010001)和0x0f(00001111)。

在左侧丢失4位。