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 wykonywania operacji bitowych.
Ograniczenia liczbowe
Ta biblioteka traktuje liczby jako niepodpisane liczby 32-bitowe; liczby zostaną przekonwertowane na tę przed użyciem (zobacz obraz poniżej).Liczby z liczbami dziesiętnymi są zaokrąglane do najbliższej całej liczby.

Podsumowanie
Funkcje
Zwraca liczbę po tym, jak jej bity zostały arytmetycznie przesunięte w prawo przez daną przesunięcie.
Zwraca bitowe AND wszystkich dostarczonych liczb.
Zwraca bitowe zaprzeczenie danego numeru.
Zwraca bitowe LUB wszystkich dostarczonych numerów.
Zwraca booleszczą opisującą, czy bitwise i jego operandy są różne od zera.
Zwraca bitowe XOR wszystkich dostarczonych liczb.
Zwraca podany numer z kolejnością wymienionych bajtów.
Zwraca liczbę kolejnych zerowych bitów w reprezentacji 32-bitowej podanego numeru, zaczynając od najlewego (najbardziej znaczącego) bitu.
Zwraca liczbę kolejnych zerowych bitów w reprezentacji 32-bitowej podanego numeru, zaczynając od najbardziej prawej (najmniej znaczącej) bitu.
Wyodrębnij zakres bajtów z liczby i zwróć je jako niepodpisaną liczbę.
Zwróć kopię liczby z zakresem bitów zastąpionym przez określoną wartość.
Zwraca liczbę po tym, jak jej bity zostały obrócone w lewo o określoną liczbę razy.
Zwraca liczbę, której bity zostały logicznie przesunięte w lewo przez daną przesunięcie.
Zwraca liczbę po tym, jak jej bity zostały obrócone w prawo o określoną liczbę razy.
Zwraca liczbę, której bity zostały logicznie przesunięte w prawo przez daną przesunięcie.
Funkcje
arshift
Zwraca liczbę x przesuniętą w prawo o disp bitów.Liczba disp może być dowolną reprezentatywną liczbą całkowitą.Negatywne przesunięcia przesuwają się w lewo.
Ta operacja zmiany jest nazywana operacją arytmetyczną zmiany.Wolne bity po lewej stronie są wypełnione kopiami wyższego bitu x ; wolne bity po prawej stronie są wypełnione zerami.W szczególności przesunięcia z absolutnymi wartościami wyższymi niż 31 prowadzą do zera lub 0xFFFFFFFF (wszystkie oryginalne bity są przesunięte).
Parametry
Zwroty
band
Zwraca bitowe AND wszystkich dostarczonych liczb.
Każdy bit jest testowany przeciwko następującej tabeli prawdy:
<th>B</th><th>Wyjście</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 |
---|

Parametry
Zwroty
bor
Zwraca bitowe LUB wszystkich dostarczonych numerów.
Każdy bit jest testowany przeciwko następującej tabeli prawdy:
<th>B</th><th>Wyjście</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 |
---|

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

Parametry
Zwroty
extract
Zwraca niepodpisaną liczbę utworzoną przez bity field do field + width - 1 z n.Bitów jest numerowane od 0 (najmniej znaczące) do 31 (najbardziej znaczące).Wszystkie uzyskane bity muszą być w przedziale [0, 31].Domyślny dla width jest 1.
Zwroty
lrotate
Zwraca liczbę x obróconą o disp bitów w lewo.Liczba disp może być dowolną reprezentatywną liczbą całkowitą.Dla każdego ważnego przesunięcia następuje następująca tożsamość:
assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32))
W szczególności, ujemne przesunięcia obracają się w prawo.
Zwroty
lshift
Zwraca liczbę x przesuniętą w lewo o disp bitów.Liczba disp może być dowolną reprezentatywną liczbą całkowitą.Negatywne przesunięcia przesuwają się w prawo.W dowolnym kierunku, wolne bity są wypełnione zerami.W szczególności przesunięcia z absolutnymi wartościami wyższymi niż 31 dają wynik zero (wszystkie bity są przesunięte).

Dla pozytywnych przesunięć zachodzi następująca równość:
assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
Zwroty
rrotate
Zwraca liczbę x obróconą o disp bitów w prawo. Liczba disp może być dowolną reprezentatywną liczbą całkowitą.
Dla każdego ważnego przesunięcia następuje następująca tożsamość:
assert(bit32.rrotate(x, disp) == bit32.rrotate(x , disp % 32))
W szczególności, ujemne przesunięcia obracają się w lewo.
Zwroty
rshift
Zwraca liczbę x przesuniętą w prawo o disp bitów.Liczba disp może być dowolną reprezentatywną liczbą całkowitą.Negatywne przesunięcia przesuwają się w lewo.W dowolnym kierunku, wolne bity są wypełnione zerami.W szczególności przesunięcia z absolutnymi wartościami wyższymi niż 31 dają wynik zero (wszystkie bity są przesunięte).

Dla pozytywnych przesunięć zachodzi następująca równość:
assert(bit32.rshift(b, disp) == (b % 2^32 / 2^disp) // 1)
Ta operacja zmiany nazywana jest logiczną zmianą.