bit32

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Perpustakaan ini menyediakan fungsi untuk melakukan operasi bitwise.

Keterbatasan Angka

Perpustakaan ini mengubah angka menjadi signed 32-bit integer; angka akan dikonversi ke ini sebelum digunakan (lihat gambar di bawah ini). Angka dengan angka desimal dibulatkan menjadi nomor penuh terdekat.

32-bit integer conversion (in hexadecimal)

Rangkuman

Fungsi

  • Mengembalikan angka setelah bitnya telah dipindahkan secara aritmatikal ke kanan dengan penggeseran tertentu.

  • band(numbers : Tuple):number

    Mengembalikan bitwise DAN dari semua nomor yang disediakan.

  • Mengembalikan negasi bitwise dari nomor yang diberikan.

  • bor(numbers : Tuple):number

    Mengembalikan bitwise ATAU dari semua nomor yang disediakan.

  • btest(numbers : Tuple):bool

    Mengembalikan booleh yang menjelaskan apakah bitwise dan operandnya berbeda dari nol.

  • bxor(numbers : Tuple):number

    Mengembalikan bitwise XOR dari semua nomor yang disediakan.

  • Mengembalikan nomor yang diberikan dengan urutan bintang bertukar.

  • Mengembalikan jumlah bit nol berurutan dalam representasi 32-bit yang diberikan dimulai dari bit paling kiri (paling signifikan).

  • Mengembalikan jumlah bit nol berturut-turut dalam representasi 32-bit yang dimulai dari bit terkecil (paling tidak signifikan).

  • extract(n : number,field : number,width : number):number

    Ekstraksi beberapa bit dari angka dan kembalikan mereka sebagai angka yang tidak ditandai.

  • replace(n : number,v : number,field : number,width : number):number

    Kembalikan salinan dari angka dengan rentang bit yang digantikan oleh nilai tertentu.

  • Mengembalikan nomor setelah bitnya dirotasi ke kiri dengan jumlah waktu tertentu.

  • Mengembalikan nomor cuaca yang telah dipindahkan secara logik ke kiri oleh penggeseran tertentu.

  • Mengembalikan angka setelah bitnya dirotasi ke kanan dengan jumlah waktu tertentu.

  • Mengembalikan angka whose bit telah diangkat secara logikal ke kanan dengan penggeseran yang diberikan.

Fungsi

arshift

Mengembalikan nomor x yang bergeser ke kanan. Nomor disp dapat diwakili oleh setiap angka. Penggeseran negatif ke kiri.

Operasi shift ini adalah apa yang disebut arithmetic shift. Bit kosong di sebelah kiri dll dipenuhi dengan salinan dari bit tertinggi dari x ; bit kosong di sebelah kanan dll dipenuhi dengan nol. Khususnya, displacement dengan nilai absolut lebih dari 31 menghasilkan nol atau 0XXXXXXXX (semua bit asli diangkat keluar).

Parameter

Nomor whose bit akan diangkat.

disp: number

Jumlah bit ganjil untuk bergeser.

Memberikan nilai

band

Mengembalikan bitwise DAN dari semua nomor yang disediakan.

Setiap bit diuji melawan tabel kebenaran berikut:


<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
SebuahBOutput
Bitwise AND of 3 numbers

Parameter

numbers: Tuple

Memberikan nilai

bnot

Mengembalikan negasi bitwise dari x .

Negation of a provided number

Untuk setiap angka x, identitas berikut berlaku:


assert(bit32.bnot(x) == (-1 - x) % 2^32)

Parameter

Memberikan nilai

Mengembalikan bitwise ATAU dari semua nomor yang disediakan.

Setiap bit diuji melawan tabel kebenaran berikut:


<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
SebuahBOutput
Bitwise OR of 3 numbers

Parameter

numbers: Tuple

Memberikan nilai

btest

Mengembalikan tandaBoolean jika bitwise dan dari operandnya berbeda dari nol.

Parameter

numbers: Tuple

Memberikan nilai

bxor

Mengembalikan bitwise XOR dari semua nomor yang disediakan.

Setiap bit diuji melawan tabel kebenaran berikut:


<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
</tbody>
SebuahBOutput
Bitwise XOR of 3 numbers

Parameter

numbers: Tuple

Memberikan nilai

byteswap

Mengembalikan nomor yang diberikan dengan urutan bintang bertukar.

Parameter

Memberikan nilai

countlz

Mengembalikan jumlah bit nol berurutan dalam representasi 32-bit yang diberikan. Mengembalikan 32 jika representasi yang diberikan adalah nol.

Parameter

Memberikan nilai

countrz

Mengembalikan jumlah bit nol berurutan dalam representasi 32-bit yang diberikan dimulai dari bit paling kanan (bit yang paling tidak signifikan). Mengembalikan 32 jika bit yang diberikan adalah nol.

Parameter

Memberikan nilai

extract

Mengembalikan nomor yang tidak ditanda oleh bit field ke field + width - 1 dari n . Bit dihitung dari 0 (paling kecil) hingga 31 (paling signifikan). Semua bit yang diakses harus berada dalam rentang [0, 31]. Standar untuk 4> wide4> adalah

Parameter

field: number
width: number
Nilai Default: 1

Memberikan nilai

replace

Mengembalikan salinan dari n dengan bit field ke field + width - 1 digantikan oleh nilai 1> v1> . Lihat 4> Library.bit32.extract()4> untuk rincian tentang 7> field7> dan 0> width0> .

Parameter

field: number
width: number
Nilai Default: 1

Memberikan nilai

lrotate

Mengembalikan nomor x yang berputar ke kiri. Nomor disp dapat diwakili oleh setiap angka. Untuk setiap valid displacement, identitas berikut menyimpan:


assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32))

Khususnya, displacement negatif berputar ke kanan.

Parameter

disp: number

Memberikan nilai

lshift

Mengembalikan nomor x yang bergeser disp bit ke kiri. Nomor disp dapat menjadi angka apa pun yang dapat diwakili. Pertambahan penggeseran negatif ke kanan. Di setiap arah, bit yang tidak digunakan ditempatkan dengan nol. Khususnya, penggeseran dengan nilai absolut lebih

Number shifted 3 to the left

Untuk penggeseran positif, persamaan berikut berlaku:


assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)

Parameter

disp: number

Memberikan nilai

rrotate

Mengembalikan nomor x yang berputar ke kanan. Nomor disp dapat diwakili oleh setiap angka.

Untuk setiap penggeseran yang valid, identitas berikut ini berlaku:


assert(bit32.rrotate(x, disp) == bit32.rrotate(x , disp % 32))

Khususnya, displacement negatif berputar ke kiri.

Parameter

disp: number

Memberikan nilai

rshift

Mengembalikan nomor x yang bergeser disp bit ke kanan. Nomor disp dapat menjadi angka apa pun yang dapat diwakili. Pertambahan penggeseran pada saat penggeseran pada saat penggeseran pada saat penggeseran pada saat penggeseran pada saat penggeseran pada saat pengges

Number shifted 3 to the right

Untuk penggeseran positif, persamaan berikut berlaku:


assert(bit32.rshift(b, disp) == math.floor(b % 2^32 / 2^disp))

Operasi shift ini adalah apa yang disebut logical shift.

Parameter

disp: number

Memberikan nilai