【问题标题】:Is there way to know data is decimal or binary or hexadecimal?有没有办法知道数据是十进制、二进制或十六进制?
【发布时间】:2018-01-19 14:45:19
【问题描述】:

我需要转换我不知道是否是的数据

  • 十进制
  • 二进制
  • 十六进制

转为十进制格式。

到目前为止,我已经尝试过使用

  • bindec()将二进制数据转换为十进制
  • hexdec() 将十六进制转换为十进制

但是,我需要事先确定一个数字是十进制还是十六进制。

有没有办法做到这一点?

【问题讨论】:

  • 请显示示例数据。
  • 如果没有任何进一步的信息,你能分辨出 11 是十一、十七还是三?
  • 您尝试的那些函数将二进制和十六进制格式的字符串转换为整数。使用intval() 自动检测和转换值。另外,请查看我的答案以获取更多信息。

标签: php binary hex decimal


【解决方案1】:

您可以遇到的任意碱基之间的唯一区别是文字。在 PHP 中,每个数字都存储为整数或浮点数。

$binary = 0b1100; // stored as 12
$oct    = 014;    // stored as 12
$hex    = 0xC;    // stored as 12

但是,如果您的数据是字符串,您可以使用正则表达式来确定它的类型,而不是使用 hexdec()octdec()bindec() 函数将它们转换为十进制。

或者,您可以使用intval() 函数,它通过字符串的格式自动检测类型:

intval("0b000"); // bin->dec conversion
intval("014");   // oct->dec conversion
intval("0xC");   // hex->dec conversion
intval("12");    // str->dec cast!!
intval("asd");   // str->dec cast!!

注意未格式化的字符串,因为 intval() 会将所有内容都变成数字。

【讨论】:

    猜你喜欢
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 2014-01-07
    • 2012-04-08
    • 2011-02-09
    • 1970-01-01
    相关资源
    最近更新 更多