Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan penukaran heksadesimal dan pengisian bit dalam php

Bagaimana untuk melaksanakan penukaran heksadesimal dan pengisian bit dalam php

PHPz
PHPzasal
2023-03-29 10:13:51674semak imbas

PHP ialah bahasa skrip sebelah pelayan yang digunakan secara meluas dalam bidang pembangunan web Memproses operasi nombor juga merupakan bahagian penting dalam PHP. Dalam operasi digital, penukaran asas dan pelengkap ialah dua konsep utama. Artikel ini akan memperkenalkan secara terperinci penukaran asas dan operasi pelapik dalam PHP untuk membantu pembaca memahami dan menggunakan kedua-dua operasi ini dengan lebih baik.

1. Penukaran asas

1.1 Menukar perpuluhan kepada asas lain

PHP menyediakan fungsi untuk menukar nombor perpuluhan kepada asas lain, yang paling biasa digunakan ialah decbin (), fungsi decoct() dan dechex(). Fungsi ini menukar nombor perpuluhan masing-masing kepada rentetan perduaan, perlapanan dan perenambelasan, dan mengembalikan hasilnya.

Kod sampel adalah seperti berikut:

$decimal_num = 35;
$bin_num = decbin($decimal_num);  // 二进制
$oct_num = decoct($decimal_num);  // 八进制
$hex_num = dechex($decimal_num);  // 十六进制
echo "{$decimal_num}的二进制是:{$bin_num}\n";  // 输出35的二进制
echo "{$decimal_num}的八进制是:{$oct_num}\n";  // 输出35的八进制
echo "{$decimal_num}的十六进制是:{$hex_num}\n";  // 输出35的十六进制

Hasil output adalah seperti berikut:

35的二进制是:100011
35的八进制是:43
35的十六进制是:23

1.2 Menukar asas lain kepada perpuluhan

dan menukar nombor perpuluhan kepada Sepadan dengan sistem asas lain ialah operasi menukar nombor asas lain kepada perpuluhan PHP juga menyediakan fungsi yang sepadan, iaitu fungsi bindec(), octdec() dan hexdec(). Fungsi ini menukar rentetan perduaan, perlapanan dan perenambelasan kepada integer perpuluhan dan mengembalikan hasilnya.

Kod sampel adalah seperti berikut:

$bin_num = '100011';
$oct_num = '43';
$hex_num = '23';
$decimal_num_from_bin = bindec($bin_num);  // 二进制转十进制
$decimal_num_from_oct = octdec($oct_num);  // 八进制转十进制
$decimal_num_from_hex = hexdec($hex_num);  // 十六进制转十进制
echo "{$bin_num}的十进制是:{$decimal_num_from_bin}\n";  // 输出二进制的十进制转换结果
echo "{$oct_num}的十进制是:{$decimal_num_from_oct}\n";  // 输出八进制的十进制转换结果
echo "{$hex_num}的十进制是:{$decimal_num_from_hex}\n";  // 输出十六进制的十进制转换结果

Hasil output adalah seperti berikut:

100011的十进制是:35
43的十进制是:35
23的十进制是:35

Kendalian isian

Dalam komputer, stor nombor dan Operasi selalunya dilakukan dalam bentuk binari. Kadangkala kita perlu "mengisi" nombor binari, iaitu, mengisi bit tertinggi dengan 0 atau 1 untuk memenuhi keperluan pengiraan jenis operasi aritmetik tertentu. Pustaka bitset yang disediakan dalam PHP boleh melengkapkan operasi "pengisian bit" sedemikian.

2.1 Pasang pustaka bitset

Untuk menggunakan pustaka bitset, anda perlu memasang pustaka dahulu. Langkah pemasangan adalah seperti berikut:

Langkah 1: Jalankan arahan berikut dalam terminal untuk memasang pustaka bitset:

composer require lucasassis/bitset

Langkah 2: Rujuk pemuat auto yang dijana secara automatik oleh komposer dalam kod:

require 'vendor/autoload.php';

2.2 Cipta set bit

Sebelum menggunakan perpustakaan bitset untuk melaksanakan operasi pengisian bit, anda perlu mencipta set bit (iaitu set bit). Set bit ialah koleksi bit berjujukan, di mana setiap bit ialah simbol binari 0 atau 1.

Fungsi yang mencipta set bit ialah BitSet::create(), dan parameternya ialah jumlah bilangan bit, yang boleh menjadi integer atau rentetan.

Kod sampel adalah seperti berikut:

use Lucasassis\BitSet;

$num_of_bits = 8;  // 位数
$bitset = BitSet::create($num_of_bits);  // 创建8位的bitset
echo "创建的{$num_of_bits}位bitset为:{$bitset}\n";

Hasil output adalah seperti berikut:

创建的8位bitset为:00000000

2.3 Operasi isian

Dengan set bit, anda boleh melakukan Operasi pengisian selesai. Sebagai contoh, dalam pengiraan penambahan binari 1, operan (iaitu, nombor yang perlu ditambah 1) perlu "dipulangkan dan ditambah 1" untuk menghasilkan keputusan yang betul untuk menambah 1.

Kod sampel adalah seperti berikut:

use Lucasassis\BitSet;

$num_of_bits = 8;  // 位数
$number = 35;  // 要进行加1操作的数字
$bitset = BitSet::create($num_of_bits);  // 创建8位的bitset
$bitset->setValue($number);  // 将$number值存入bitset中
echo "原数字:{$number},补位结果:";
echo $bitset->not()->add(1)->asBinaryString();  // 取反加1,输出结果

Hasil output adalah seperti berikut:

原数字:35,补位结果:00100010

Dalam kod di atas, BitSet::setValue() fungsi digunakan untuk menyimpan nombor dalam set bawa , fungsi BitSet::not() digunakan untuk melaksanakan operasi penyongsangan, fungsi BitSet::add() digunakan untuk melaksanakan operasi kenaikan, dan BitSet::asBinaryString () fungsi digunakan untuk mengeluarkan hasil rentetan binari.

3. Ringkasan

Artikel ini memperkenalkan penukaran asas dan operasi pengisian bit dalam PHP. Penukaran asas adalah konsep penting dalam operasi komputer dan memainkan peranan penting dalam perwakilan dan pemprosesan data digital. Operasi isian ialah operasi yang sering digunakan dalam algoritma khusus untuk meningkatkan hasil operasi data digital. Saya harap artikel ini dapat membantu pembaca lebih memahami dan menggunakan kedua-dua operasi ini.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penukaran heksadesimal dan pengisian bit 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