【问题标题】:different between bindec($value) and hexdec(bin2hex($value)) PHPbindec($value) 和 hexdec(bin2hex($value)) PHP 之间的区别
【发布时间】:2018-04-20 12:28:40
【问题描述】:

我有一个 $value 这样的 var_dump(bin2hex($value)) 输出 = '015180'

我想将此值转换为十进制。所以我知道我的$value 是二进制的,我写了这些代码:

var_dump(bindec($value));// 0
var_dump(hexdec(bin2hex($value)));//86400

结果是86400,但为什么第一个不返回我0。他们两个有什么不同。还是我错过了什么?

【问题讨论】:

  • 你能告诉我们$value的原始值吗?如果您有问题,请复制/粘贴示例。
  • var_dump($value) 输出是'Q'

标签: php type-conversion


【解决方案1】:

我只引用了 bin2hex 文档中的一个 cmets:

bin2hex 函数用于将二进制数据转换为十六进制字符串表示。此功能不适用于将表示二进制数字的字符串转换为十六进制。如果您想要该功能,您可以这样做:

<?php
$binary = "11111001";
$hex = dechex(bindec($binary));
echo $hex;
?>

这将输出“f9”。请记住,二进制数据和二进制的字符串表示之间存在很大差异。

作者:tehjosh

【讨论】:

  • var_dump($value) 输出是 'Q�' 我怎样才能通过一种类型转换得到 86400
  • bin2hex 将字符串作为参数。可能您的二进制数据被评估为某个值,从hexdec 产生 86400。
  • 你有证据吗?
  • 试写输出:我需要在十六进制之前写 bin2hex
猜你喜欢
  • 1970-01-01
  • 2012-06-26
  • 2020-07-12
  • 2023-03-04
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多