bit32
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Ta biblioteka dostarcza funkcje do wykonania operacji bitowych.
Ograniczenia liczbowe
Ta biblioteka traktuje liczby jako nieznakowane 32-bitowe całki; liczby zostaną przekonwertowane do tego przed użyciem (zobacz obrazek poniżej). Liczby z dziesiętnikami są zaokrąglone do najbliższego całkowitego liczby.

Podsumowanie
Funkcje
Wyświetla liczbę po przesunięciu bitów w prawie przez dany przesunięcie.
Wykonuje bitwise I wszystkie dostępne numery.
Zwraca negację bitwą danych podanych.
Zwraca bitwise LUB wszystkie dostępne numery.
Zwraca prawdziwy, opisujący czy bitwise i jego operandy są różne od zero.
Zwraca bitwise XOR wszystkich dostępnych liczb.
Wyświetla podany numer w porządku zmienianych bajtów.
Wyświetla liczbę kolejnych zerowych bitów w 32-bitowej reprezentacji dostarczonego liczby, zaczynając od najlewszego (najważniejszego) bitu.
Wyświetla liczbę kolejnych zerowych bitów w 32-bitowej reprezentacji dostarczonego liczby, zaczynając od najbardziej prawego (najmniej znaczącego) bitu.
Ekstraktuj zbiór bądź znaków z liczby i zwróć je jako niepodpisany liczba.
Zwróć kopię liczby z zasięgiem bitów zastąpionych przez określoną wartość.
Wyświetla liczbę po przeprowadzeniu bitów do lewej przez określoną liczbę czasów.
Wywraca liczbę, których bity zostały logicznie przesunięte do lewej przez dany przesunięcie.
Wyświetla liczbę po prawicy przez określony liczb czasów.
Zwraca liczbę, która ma była logicznie przesunięta do prawej przez dany przesunięcia.
Funkcje
arshift
Wyświetla liczbę x przeniesionych disp bitów w prawo. Liczba disp może być dowolnym liczbą przedstawioną. Ujemne przesunięcia się w lewo.
Ta operacja przesunięcia jest nazywana arytmetycznym przesunięciem. Wolne bity po lewej stronie są wypełnione kopiami wyższego bitu z x ; wolne bity po prawej stronie są wypełnione zerami. W szczególności przesunięcia z wartościami absolutnymi wynoszącymi 31 wynoszą zero lub 0xFFFFFFFF (wszystkie oryginalne bity są przesunięte).
Parametry
Zwroty
band
Wykonuje bitwise I wszystkie dostępne numery.
Każdy bit jest testowany przeciwko następującej tabeli prawdy:
<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 | B | Wyjście |
---|

Parametry
Zwroty
bor
Zwraca bitwise LUB wszystkie dostępne numery.
Każdy bit jest testowany przeciwko następującej tabeli prawdy:
<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 | B | Wyjście |
---|

Parametry
Zwroty
bxor
Zwraca bitwise XOR wszystkich dostępnych liczb.
Każdy bit jest testowany przeciwko następującej tabeli prawdy:
<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 | B | Wyjście |
---|

Parametry
Zwroty
extract
Wywraca liczbę podpisaną przez bity field do field + width - 1 z n . Bity są liczone od 0 (najmniejszego znaczenia) do 31 (największego znaczenia). Wszystkie dostępne bity muszą być w zakresie [0, 31]. Domyślnie dla 1> wide1>
Zwroty
lrotate
Zwraca liczbę x obróconych disp bit na lewo. Liczba disp może być dowolnym liczbą przedstawioną. Dla dowolnego przesunięcia liczby następuje następująca tożsamość:
assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32))
W szczególności ujemne przesunięcia kręcą się w prawo.
Zwroty
lshift
Wyświetla liczbę x przeniesionych disp bit na lewo. Liczba disp może być dowolnym liczbą reprezentatywną. Negatywne przeniesienie się do prawej. W każdym kierunku, puste bity są wypełnione zerami. W szczególności, przeniesienie z wartością absolutną wyższą niż 31 wynika w zero (wsz

Dla pozytywnych przesunięć następuje równowaga:
assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
Zwroty
rrotate
Zwraca liczbę x obróconych disp bit na prawo. Liczba disp może być dowolnym liczbą przedstawiającą się.
Dla każdej ważnej przesunięcia następująca tożsamość zawiera:
assert(bit32.rrotate(x, disp) == bit32.rrotate(x , disp % 32))
W szczególności ujemne przesunięcia się kręcą w lewo.
Zwroty
rshift
Wyświetla liczbę x przeniesionych disp bit na prawy. Liczba disp może być dowolnym liczbą reprezentującą. Negatywne przeniesienia przeniesione do lewej. W każdym kierunku wszystkie puste bity są wypełnione zerami. W szczególności przeniesienia z wartościami absolutnymi wyższymi

Dla pozytywnych przesunięć następuje równowaga:
assert(bit32.rshift(b, disp) == math.floor(b % 2^32 / 2^disp))
Ta operacja zmiany jest nazywana logiczną zmianą.