Bagaimana untuk melaksanakan penukaran heksadesimal dan pengisian bit dalam php

PHPz
Lepaskan: 2023-03-29 10:21:16
asal
680 orang telah melayarinya

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的十六进制
Salin selepas log masuk

Hasil output adalah seperti berikut:

35的二进制是:100011
35的八进制是:43
35的十六进制是:23
Salin selepas log masuk

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";  // 输出十六进制的十进制转换结果
Salin selepas log masuk

Hasil output adalah seperti berikut:

100011的十进制是:35
43的十进制是:35
23的十进制是:35
Salin selepas log masuk

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
Salin selepas log masuk

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

require 'vendor/autoload.php';
Salin selepas log masuk

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";
Salin selepas log masuk

Hasil output adalah seperti berikut:

创建的8位bitset为:00000000
Salin selepas log masuk

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,输出结果
Salin selepas log masuk

Hasil output adalah seperti berikut:

原数字:35,补位结果:00100010
Salin selepas log masuk

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!

Label berkaitan:
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