2017-08-11 42 views
-1

我需要这些,我不知道是否是有办法知道数据是十进制还是二进制还是十六进制?

  • 小数
  • 二进制
  • 十六进制

为十进制格式转换数据。

到目前为止,我曾尝试使用

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

不过,我需要事先确定是否数字是十进制或十六进制。

有没有办法做到这一点?

+0

请显示样本数据。 – Yunnosch

+6

你能否告诉我11岁是十一岁,十七岁还是三岁没有任何进一步的信息? –

+0

您尝试的功能是将二进制和十六进制格式化的字符串转换为整数。使用'intval()'来自动检测和转换值。另外,请查看我的答案获取更多信息。 –

回答

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()将会把一切都变成了一些。