如何将 8 位二进制数据转换为十六进制
How do i convert an 8 bit binary data to hex
print_r(bin2hex("11111111"));
echo '</br>';
print_r(bindec("11111111"));
结果
- 131313131313131
- 255
I want a hexadecimal 16 byte value to do aes encryption.How is the conversion from binary to hex happening in php.I am getting incorrect value using the function.Also when i convert an array of hexadecimal values to string the byte length changes
你得到了正确的结果,这不是你想要的。 bin2hex()
returns 十六进制表示的 ASCII 字符串。手册中的引述:
Returns an ASCII string containing the hexadecimal representation of str.
所以如果你想要十六进制数,你可以使用这个:
print_r(dechex(bindec("11111111")));
获取十六进制的转换器是dechex()
,但它需要一个十进制数。为此,我们首先使用 bindec()
将二进制字符串转换为十进制数,然后将其传递给 dechex()
,例如:
print_r(dechex(bindec("11111111")));
<?php
$str = "Hello world!";
echo bin2hex($str) . "<br>";
echo pack("H*",bin2hex($str)) . "<br>";
?>
PHP.NET 手册:
http://php.net/manual/en/function.bin2hex.php
测试你的结果: http://www.cs.princeton.edu/courses/archive/fall07/cos109/bc.html
详细说明:
http://www.computerhope.com/binhex.htm
就是 9 * 16 + F,其中 F 是 15(字母 A 到 F 代表 10 到 15)。也就是说0x9F是159.
这与数字 314,159 没有什么不同:
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).
这样一个数字的符号与那里的 "one level up" 有点相似。无符号值 159(8 位)确实是一个负数,但前提是您将其解释为一。
print_r(bin2hex("11111111"));
echo '</br>';
print_r(bindec("11111111"));
结果
- 131313131313131
- 255
I want a hexadecimal 16 byte value to do aes encryption.How is the conversion from binary to hex happening in php.I am getting incorrect value using the function.Also when i convert an array of hexadecimal values to string the byte length changes
你得到了正确的结果,这不是你想要的。 bin2hex()
returns 十六进制表示的 ASCII 字符串。手册中的引述:
Returns an ASCII string containing the hexadecimal representation of str.
所以如果你想要十六进制数,你可以使用这个:
print_r(dechex(bindec("11111111")));
获取十六进制的转换器是dechex()
,但它需要一个十进制数。为此,我们首先使用 bindec()
将二进制字符串转换为十进制数,然后将其传递给 dechex()
,例如:
print_r(dechex(bindec("11111111")));
<?php
$str = "Hello world!";
echo bin2hex($str) . "<br>";
echo pack("H*",bin2hex($str)) . "<br>";
?>
PHP.NET 手册: http://php.net/manual/en/function.bin2hex.php
测试你的结果: http://www.cs.princeton.edu/courses/archive/fall07/cos109/bc.html
详细说明: http://www.computerhope.com/binhex.htm
就是 9 * 16 + F,其中 F 是 15(字母 A 到 F 代表 10 到 15)。也就是说0x9F是159.
这与数字 314,159 没有什么不同:
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).
这样一个数字的符号与那里的 "one level up" 有点相似。无符号值 159(8 位)确实是一个负数,但前提是您将其解释为一。