Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar rentetan heksadesimal kepada tatasusunan bait dalam php

Bagaimana untuk menukar rentetan heksadesimal kepada tatasusunan bait dalam php

PHPz
PHPzasal
2023-04-24 14:51:201115semak imbas

Dalam pengaturcaraan PHP, tatasusunan bait (tatasusunan bait) adalah jenis data yang biasa digunakan dan rentetan perenambelasan sering digunakan untuk mewakili data binari. Proses menukar rentetan perenambelasan kepada tatasusunan bait adalah masalah yang sering kita hadapi semasa memproses data binari. Dalam artikel ini, kita akan membincangkan cara menukar rentetan heksadesimal kepada tatasusunan bait dalam PHP.

  1. Memahami rentetan heksadesimal

Dalam komputer, nombor perduaan ialah jenis data yang paling asas, tetapi menulis nombor perduaan adalah sangat menyusahkan. Untuk memudahkan penulisan dan pembacaan, kami biasanya menukar nombor binari kepada nombor perenambelasan untuk memudahkan pembezaan dan pengenalan semasa menulis dan membaca. Nombor perenambelasan boleh diwakili secara langsung oleh aksara ASCII, seperti 0x1A, 0xFF, 0x2B, dsb.

Nombor heksadesimal boleh ditukar dengan mudah kepada nombor perduaan, contohnya, 0x1A diwakili sebagai 0001 1010 dan 0xFF diwakili sebagai 1111 1111. Apabila kita menghantar data ke komputer, kita selalunya perlu menukar data kepada bit binari dan kemudian menghantarnya. Walau bagaimanapun, adalah menyusahkan bagi kami untuk menulis data binari terus dalam kod, jadi nombor binari sering dinyatakan sebagai rentetan perenambelasan untuk penghantaran.

  1. Cara menukar rentetan heksadesimal kepada tatasusunan bait

Dalam PHP, terdapat banyak cara untuk menukar rentetan perenambelasan kepada tatasusunan bait, seperti berikut Kami akan memperkenalkan dua daripadanya:

2.1 Menggunakan fungsi pek dan hexdec

Fungsi pek boleh memuatkan nilai-nilai dalam tatasusunan ke dalam rentetan binari mengikut format yang ditentukan dan hexdec fungsi boleh memuatkan 16 Menukar rentetan perenambelasan kepada nombor perpuluhan.

Langkah khusus adalah seperti berikut:

$hex_str = "12AB34CD";
$len = strlen($hex_str);
$ret = array();
for ($i=0; $i<$len; $i+=2) { 
  array_push($ret, hexdec(substr($hex_str, $i, 2)));
}

Kod di atas menukar setiap dua aksara kepada nombor perenambelasan melalui gelung, dan kemudian menggunakan fungsi perenambelasan untuk menukar rentetan perenambelasan kepada perpuluhan sistem dan disimpan dalam tatasusunan bait.

2.2 Gunakan bin2hex dan bongkar fungsi

Fungsi bin2hex boleh menukar rentetan binari kepada rentetan perenambelasan dan fungsi unpack boleh menukar rentetan binari kepada tatasusunan.

Langkah-langkah khusus adalah seperti berikut:

$hex_str = "12AB34CD";
$bin_str = hex2bin($hex_str);
$ret = unpack("C*", $bin_str);

Kod di atas menukar rentetan perenambelasan menjadi rentetan binari melalui fungsi hex2bin, dan kemudian menukar rentetan binari menjadi tatasusunan bait melalui membongkar fungsi.

  1. Ringkasan

Kedua-dua kaedah di atas boleh menukar rentetan perenambelasan kepada tatasusunan bait yang manakah boleh dipertimbangkan berdasarkan keperluan sebenar dan overhed memori. Dalam aplikasi praktikal, kita perlu menggunakan tatasusunan bait untuk memproses data binari, yang digunakan secara meluas dalam senario seperti menghuraikan fail bukan teks dan penghantaran rangkaian fail binari.

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan heksadesimal kepada tatasusunan bait dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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