Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar nombor titik terapung heksadesimal kepada nombor nyata dalam php
PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dengan sintaks yang ringkas dan mudah dipelajari dan digunakan. Dalam PHP, nombor titik terapung ialah jenis data yang sangat penting, dan nombor titik terapung heksadesimal ialah perwakilan biasa jenis nombor titik terapung. Artikel ini akan menerangkan cara menukar nombor titik terapung heksadesimal kepada nombor nyata.
Dalam PHP, anda boleh menggunakan fungsi hex2bin untuk menukar nombor heksadesimal kepada nombor binari. Sebagai contoh, kita boleh menggunakan kod berikut untuk menukar nombor perenambelasan 0x4054000000000000 kepada nombor perduaan $b: 00000000000, nombor ini adalah berdasarkan piawaian IEEE 754 , 0.25 dalam format titik terapung berketepatan dua.
$hex = '4054000000000000'; $b = hex2bin($hex);Seterusnya, kita perlu menggunakan fungsi unpack untuk menukar nombor binari kepada nombor nyata. Fungsi unpack boleh membongkar data binari ke dalam berbilang pembolehubah dan menghuraikannya mengikut format yang ditentukan. Apabila menghuraikan nombor titik terapung berketepatan dua kepada nombor nyata, kita perlu menggunakan pemformat d. Contohnya, jika anda ingin menghuraikan data dalam pembolehubah $b kepada nombor nyata, anda boleh menggunakan kod berikut:
Pada masa ini, nilai pembolehubah $hasil ialah nombor sebenar 0.25 .
$result = unpack('d', $b)[1];Dalam pembangunan sebenar, kita mungkin perlu menukar berbilang nombor titik terapung heksadesimal kepada nombor nyata dan menyimpannya dalam tatasusunan. Berikut ialah kod contoh mudah:
Kod pertama kali mentakrifkan tatasusunan $hex_array yang mengandungi dua nombor titik terapung heksadesimal. Kemudian, gunakan gelung foreach untuk lelaran melalui setiap nombor hex dalam $hex_array, tukarkannya kepada nombor nyata dan simpan hasilnya dalam tatasusunan baharu $float_array. Akhir sekali, gunakan fungsi print_r untuk mengeluarkan kandungan $float_array.
$hex_array = ['4054000000000000', '4004000000000000']; $float_array = []; foreach ($hex_array as $hex) { $b = hex2bin($hex); $float = unpack('d', $b)[1]; $float_array[] = $float; } print_r($float_array);Menjalankan kod di atas, kita boleh mendapatkan output berikut:
Output ini menunjukkan bahawa selepas penukaran, nombor heksadesimal pertama dalam $hex_array dihuraikan kepada 0.25, Nombor perenambelasan kedua dihuraikan kepada 0.5.
Array ( [0] => 0.25 [1] => 0.5 )Ringkasnya, kaedah menukar nombor titik terapung heksadesimal kepada nombor nyata adalah sangat mudah, hanya gunakan hex2bin dan bongkar fungsi. Perlu diingat bahawa apabila menghuraikan nombor titik terapung berketepatan dua ke dalam nombor nyata, aksara format d perlu digunakan. Memahami kandungan ini boleh membantu pembangun menggunakan ciri dan fungsi PHP dengan lebih baik serta meningkatkan kecekapan dan prestasi program.
Atas ialah kandungan terperinci Bagaimana untuk menukar nombor titik terapung heksadesimal kepada nombor nyata dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!