bit32

Pokaż przestarzałe

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

32-bit integer conversion (in hexadecimal)

Podsumowanie

Funkcje

  • Wyświetla liczbę po przesunięciu bitów w prawie przez dany przesunięcie.

  • band(numbers : Tuple):number

    Wykonuje bitwise I wszystkie dostępne numery.

  • Zwraca negację bitwą danych podanych.

  • bor(numbers : Tuple):number

    Zwraca bitwise LUB wszystkie dostępne numery.

  • btest(numbers : Tuple):bool

    Zwraca prawdziwy, opisujący czy bitwise i jego operandy są różne od zero.

  • bxor(numbers : Tuple):number

    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.

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

    Ekstraktuj zbiór bądź znaków z liczby i zwróć je jako niepodpisany liczba.

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

    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

Liczba, która będzie przesunięta.

disp: number

Liczba znaków dziesięciu do przeniesienia.

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>
ABWyjście
Bitwise AND of 3 numbers

Parametry

numbers: Tuple

Zwroty

bnot

Zwraca bitwise negation of x .

Negation of a provided number

Dla każdego całkowitego x identyfikatora następuje następująca identyfikacja:


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

Parametry

Zwroty

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>
ABWyjście
Bitwise OR of 3 numbers

Parametry

numbers: Tuple

Zwroty

btest

Wyświetla znakBoolean, czy bitwise i jego operand jest różny od zero.

Parametry

numbers: Tuple

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>
ABWyjście
Bitwise XOR of 3 numbers

Parametry

numbers: Tuple

Zwroty

byteswap

Wyświetla podany numer w porządku zmienianych bajtów.

Parametry

Zwroty

countlz

Wyświetla liczbę kolejnych zerowych bitów w 32-bitowej reprezentacji dostarczonego liczby, zaczynając od najlewszego (najważniejszego) bitu. Występuje 32, jeśli dostarczony liczby jest zero.

Parametry

Zwroty

countrz

Wyświetla liczbę kolejnych zerowych bitów w 32-bitowej reprezentacji dostarczonego liczby, zaczynając od najbardziej prawego (najmniej znaczącego) bitu. Wyświetla 32, jeśli dostarczony liczby jest zero.

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>

Parametry

field: number
width: number
Wartość domyślna: 1

Zwroty

replace

Zwraca kopię n z bitami field do field + width - 1 zastąpionymi przez wartość 1> v1>. Patrz 4> Library.bit32.assign()4> dla szczegółów o 7> field7> i 0> width0> .

Parametry

field: number
width: number
Wartość domyślna: 1

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.

Parametry

disp: number

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

Number shifted 3 to the left

Dla pozytywnych przesunięć następuje równowaga:


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

Parametry

disp: number

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.

Parametry

disp: number

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

Number shifted 3 to the right

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

Parametry

disp: number

Zwroty