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

Rangkuman
Fungsi
Mengembalikan angka setelah bitnya telah dipindahkan secara aritmatikal ke kanan dengan penggeseran tertentu.
Mengembalikan bitwise DAN dari semua nomor yang disediakan.
Mengembalikan negasi bitwise dari nomor yang diberikan.
Mengembalikan bitwise ATAU dari semua nomor yang disediakan.
Mengembalikan booleh yang menjelaskan apakah bitwise dan operandnya berbeda dari nol.
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).
Ekstraksi beberapa bit dari angka dan kembalikan mereka sebagai angka yang tidak ditandai.
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).
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>
Sebuah | B | Output |
---|

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

Parameter
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>
Sebuah | B | Output |
---|

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

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

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.