bit32
*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.

Rangkuman
Fungsi
Kembalikan angka setelah bitnya dipindahkan secara aritmatik ke kanan oleh jarak yang diberikan.
Kembalikan bitwise DAN dari semua angka yang disediakan.
Kembalikan penyangkalan bitwise dari angka tertentu.
Kembalikan OR bitwise dari semua nomor yang disediakan.
Kembalikan boolean yang menjelaskan apakah bitwise dan operan-operannya berbeda dari nol.
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)
Ekstrak berbagai bit dari angka dan kembalikan sebagai angka tanpa tanda tangan.
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
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 |
---|

Parameter
Memberikan nilai
bor
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 |
---|

Parameter
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 |
---|

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.
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.
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).

Untuk displacement positif, kesamaan berikut berlaku:
assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
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.
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).

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.