Php 如何将8位二进制数据转换为十六进制 print_r(bin2hex(“11111111”); 回音“”; 印刷品(bindec(“11111111”);

Php 如何将8位二进制数据转换为十六进制 print_r(bin2hex(“11111111”); 回音“”; 印刷品(bindec(“11111111”);,php,data-conversion,Php,Data Conversion,结果 13131313131 255 我想要一个16字节的十六进制值来进行aes加密。php中从二进制到十六进制的转换是如何进行的。我使用该函数得到的值不正确。此外,当我将十六进制值数组转换为字符串时,字节长度也会发生变化 你得到了一个正确的结果,这不是你想要的。返回十六进制表示形式的ASCII字符串。手册中的引文: 返回包含str的十六进制表示形式的ASCII字符串 因此,如果您想要十六进制数,可以使用: print_r(bin2hex("11111111")); echo '</b

结果

  • 13131313131
  • 255
我想要一个16字节的十六进制值来进行aes加密。php中从二进制到十六进制的转换是如何进行的。我使用该函数得到的值不正确。此外,当我将十六进制值数组转换为字符串时,字节长度也会发生变化


你得到了一个正确的结果,这不是你想要的。返回十六进制表示形式的ASCII字符串。手册中的引文:

返回包含str的十六进制表示形式的ASCII字符串

因此,如果您想要十六进制数,可以使用:

print_r(bin2hex("11111111"));
echo '</br>';
print_r(bindec("11111111"));
print_r(dechex(bindec("11111111")));

获取十六进制的转换器是
dechex()
,但它需要一个十进制数。为此,我们首先使用
bindec()
将二进制字符串转换为十进制数,然后将其传递到
dechex()
,例如:


这样一个数字的符号从那里算起有点“上一级”。159的无符号值(8位)确实是一个负数,但只有当您将其解释为一时才是如此。

它将返回3131313131313131313131313030313130303031303130313033033130330330331303303313131313131作为输出现在您在代码上方的文本中编写了一些关于
decbin()
,而在您的代码中您不使用它@说真的,耐心一点怎么样?重写代码需要几秒钟,但重写文本需要一分钟左右。我以为你忘了更改代码,我想我注意到你了
print_r(dechex(bindec("11111111")));
<?php
$str = "Hello world!";
echo bin2hex($str) . "<br>";
echo pack("H*",bin2hex($str)) . "<br>";
?>
  3 * 100,000 (10^5, "to the power of", not "xor")
+ 1 *  10,000 (10^4)
+ 4 *   1,000 (10^3)
+ 1 *     100 (10^2)
+ 5 *      10 (10^1)
+ 9 *       1 (10^0)
for decimal (base 10).