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.

Batasan Angka

Perpustakaan ini memperlakukan angka sebagai bilangan tak tanda tangan 32-bit; angka akan dikonversi ke ini sebelum digunakan (lihat gambar di bawah).Angka dengan angka desimal di bulatkan ke angka bulat terdekat.

32-bit integer conversion (in hexadecimal)

Rangkuman

Fungsi

  • Kembalikan angka setelah bitnya dipindahkan secara aritmatik ke kanan oleh jarak yang diberikan.

  • band(numbers : Tuple):number

    Kembalikan bitwise DAN dari semua angka yang disediakan.

  • Kembalikan penyangkalan bitwise dari angka tertentu.

  • bor(numbers : Tuple):number

    Kembalikan OR bitwise dari semua nomor yang disediakan.

  • btest(numbers : Tuple):boolean

    Kembalikan boolean yang menjelaskan apakah bitwise dan operan-operannya berbeda dari nol.

  • bxor(numbers : Tuple):number

    Kembalikan XOR bitwise dari semua angka yang disediakan.

  • Kembalikan nomor yang diberikan dengan urutan bayangan yang ditukar.

  • Kembalikan jumlah bit nol berturut-turut dalam representasi 32-bit dari nomor yang disediakan mulai dari bit paling kiri (paling signifikan).

  • Kembalikan jumlah nol berurutan dalam representasi 32-bit dari nomor yang disediakan mulai dari bit paling kanan (paling tidak signifikan)

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

    Ekstrak berbagai bit dari angka dan kembalikan sebagai angka tanpa tanda tangan.

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

    Kembalikan salinan nomor dengan rentang bit yang digantikan oleh nilai yang diberikan.

  • Kembalikan angka setelah bitnya diputar ke kiri oleh jumlah waktu yang diberikan.

  • Kembalikan angka yang bitnya telah dipindahkan secara logis ke kiri oleh penyimpangan yang diberikan.

  • Kembalikan angka setelah bitnya diputar ke kanan oleh jumlah waktu yang diberikan.

  • Kembalikan angka yang bitnya telah dipindahkan secara logis ke kanan oleh penyimpangan yang diberikan.

Fungsi

arshift

Kembalikan nomor x dipindahkan disp ke kanan.Angka disp mungkin adalah angka representatif apa pun.Displasemen negatif bergeser ke kiri.

Operasi pergeseran ini adalah apa yang disebut pergeseran aritmatik.Bit kosong di sebelah kiri diisi dengan salinan bit yang lebih tinggi dari x ; bit kosong di sebelah kanan diisi dengan nol.Secara khusus, displacement dengan nilai absolut lebih tinggi dari 31 menghasilkan nol atau 0xFFFFFFFF (semua bit asli dipindahkan keluar).

Parameter

Angka yang bitnya akan dipindahkan.

disp: number

Angka bilangan bulat dari bit untuk beralih.

Memberikan nilai

band

Kembalikan bitwise DAN dari semua angka yang disediakan.

Setiap bit diuji terhadap tabel kebenaran berikut:


<th>B</th>
<th>Output</th>
</tr>
</thead>
<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>
A
Bitwise AND of 3 numbers

Parameter

numbers: Tuple

Memberikan nilai

bnot

Kembalikan penyangkalan bitwise dari x .

Negation of a provided number

Untuk setiap bilangan bulat x, identitas berikut memegang:


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

Parameter

Memberikan nilai

Kembalikan OR bitwise dari semua nomor yang disediakan.

Setiap bit diuji terhadap tabel kebenaran berikut:


<th>B</th>
<th>Output</th>
</tr>
</thead>
<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>
A
Bitwise OR of 3 numbers

Parameter

numbers: Tuple

Memberikan nilai

btest

Kembalikan sinyal boolean apakah bitwise dan dari operan-operannya berbeda dari nol.

Parameter

numbers: Tuple

Memberikan nilai

bxor

Kembalikan XOR bitwise dari semua angka yang disediakan.

Setiap bit diuji terhadap tabel kebenaran berikut:


<th>B</th>
<th>Output</th>
</tr>
</thead>
<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>
A
Bitwise XOR of 3 numbers

Parameter

numbers: Tuple

Memberikan nilai

byteswap

Kembalikan nomor yang diberikan dengan urutan bayangan yang ditukar.

Parameter

Memberikan nilai

countlz

Kembalikan jumlah bit nol berturut-turut dalam representasi 32-bit dari nomor yang disediakan mulai dari bit paling kiri (paling signifikan).Kembalikan 32 jika nomor yang disediakan adalah nol.

Parameter

Memberikan nilai

countrz

Kembalikan jumlah nol berurutan dalam representasi 32-bit dari nomor yang disediakan mulai dari bit paling kanan (paling tidak signifikan)Kembalikan 32 jika nomor yang disediakan adalah nol.

Parameter

Memberikan nilai

extract

Kembalikan nomor tidak ditandai yang dibentuk oleh bit field ke field + width - 1 dari n .Bit diberi nomor dari 0 (paling tidak signifikan) hingga 31 (paling signifikan).Semua bit yang diakses harus berada dalam rentang [0, 31].Default untuk width adalah 1.

Parameter

field: number
width: number
Nilai Default: 1

Memberikan nilai

replace

Kembalikan salinan dari dengan bit digantikan oleh nilai .Lihat bit32.extract() untuk rincian tentang field dan width .

Parameter

field: number
width: number
Nilai Default: 1

Memberikan nilai

lrotate

Kembalikan nomor x diputar ke kiri disp bit.Angka disp mungkin adalah angka representatif apa pun.Untuk setiap penyebaran yang valid, identitas berikut dipegang:


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

Secara khusus, displacement negatif berputar ke kanan.

Parameter

disp: number

Memberikan nilai

lshift

Kembalikan nomor x dipindahkan disp ke kiri.Angka disp mungkin adalah angka representatif apa pun.Displasemen negatif bergeser ke kanan.Di segala arah, bit kosong diisi dengan nol.Secara khusus, displacement dengan nilai absolut lebih tinggi dari 31 menghasilkan nol (semua bit dipindahkan keluar).

Number shifted 3 to the left

Untuk displacement positif, kesamaan berikut berlaku:


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

Parameter

disp: number

Memberikan nilai

rrotate

Kembalikan nomor x diputar ke kanan disp bit. Nomor disp mungkin adalah angka representatif apa pun.

Untuk setiap penyebaran yang valid, identitas berikut dipegang:


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

Secara khusus, displasemen negatif berputar ke kiri.

Parameter

disp: number

Memberikan nilai

rshift

Kembalikan nomor x dipindahkan disp ke kanan.Angka disp mungkin adalah angka representatif apa pun.Displasemen negatif bergeser ke kiri.Di segala arah, bit kosong diisi dengan nol.Secara khusus, displacement dengan nilai absolut lebih tinggi dari 31 menghasilkan nol (semua bit dipindahkan keluar).

Number shifted 3 to the right

Untuk displacement positif, kesamaan berikut berlaku:


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

Operasi shift ini adalah apa yang disebut shift logis.

Parameter

disp: number

Memberikan nilai