Bagaimana untuk menukar nombor titik terapung heksadesimal kepada nombor nyata dalam php

PHPz
Lepaskan: 2023-04-11 09:58:44
asal
865 orang telah melayarinya

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);
Salin selepas log masuk
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];
Salin selepas log masuk
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);
Salin selepas log masuk
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
)
Salin selepas log masuk
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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!