2017-08-11 90 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()將會把一切都變成了一些。