【问题标题】:php convert hex to decimal not workingphp将十六进制转换为十进制不起作用
【发布时间】:2014-01-09 09:44:12
【问题描述】:

我正在尝试将 0d0c140d2f3b 的十六进制值转换为十进制。 hexdec() 和 base_convert() 给我的值是 14345527177019

值应该是 13 12 20 13 47 59

   private function convert_rtc($hex_rtc) {
        $rtc = hexdec($hex_rtc);
        return $rtc;

如果我应该使用不同的功能,请告诉我。谢谢

【问题讨论】:

  • 它给了你正确的价值。您显然希望将每 2 个十六进制数字转换为一个单独的数字,而不是转换整个数字,这是一个完全不同的问题。

标签: php hex decimal type-conversion


【解决方案1】:

0d0c140d2f3b 的原始值分成两个字符的块(例如 0d 0c 14 0d 2f3b),然后在每个单独的块上使用 hexdec()

PHP 的str_split() 函数在这里应该很有用

编辑

例如

function convert_rtc($hex_rtc) {
    $rtc = array_map(
        'hexdec',
        str_split($hex_rtc, 2)
    );
    return $rtc;
}

$hexString = '0d0c140d2f3b';

$result = convert_rtc($hexString);
var_dump($result);

【讨论】:

    【解决方案2】:
    Try this..
    
    <?php
    var_dump(hexdec("See"));
    var_dump(hexdec("ee"));
    // both print "int(238)"
    
    var_dump(hexdec("that")); // print "int(10)"
    var_dump(hexdec("a0")); // print "int(160)"
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 2018-02-23
      • 2011-07-28
      • 1970-01-01
      • 2015-06-25
      相关资源
      最近更新 更多