bit32

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Diese Bibliothek bietet Funktionen, um bitwise-Operationen auszuführen.

Nummern-Beschränkungen

Diese Bibliothek behandelt Zahlen als un签名 32-Bit-Zahlen; Zahlen werden vor dem Gebrauch umgewandelt in dies (siehe unten Bild). Zahlen mit Zeichenfolgen werden auf die nächste ganze Zahl gerundet.

32-bit integer conversion (in hexadecimal)

Zusammenfassung

Funktionen

  • Gibt eine Zahl zurück, nachdem ihre Bit nach einem bestimmten Versatz rechts arithmetisch verschoben wurden.

  • band(numbers : Tuple):number

    Rückgibt das bitwise und von allen angegebenen Zahlen.

  • Kehrt die bitwise Negation einer bestimmten Zahl zurück.

  • bor(numbers : Tuple):number

    Gibt das bitwise ODER aller bereitgestellten Zahlen zurück.

  • btest(numbers : Tuple):bool

    Gibt einenBoolean zurück, der anzeigt, ob das Bitwise und seine Operatoren von Null abweichen.

  • bxor(numbers : Tuple):number

    Kehrt die bitwise XOR aller bereitgestellten Zahlen zurück.

  • Gibt die angegebene Zahl mit der Reihenfolge der getauschten Bytes zurück.

  • Gibt die Anzahl der niedrigsten Einheiten in der 32-Bit-Repräsentation der angegebenen Zahl aus dem linken (am meisten signifikanten) Bit zurück.

  • Gibt die Anzahl der niedrigsten Nullstellen in der 32-Bit-Repräsentation der angegebenen Zahl zurück.

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

    Extrahiere eine Reihe von Bits aus einer Zahl und gib sie als un签名ierte Zahl zurück.

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

    Geben Sie eine Kopie einer Zahl mit einem Bereich von Bits durch einen bestimmten Wert zurück.

  • Rückgibt eine Zahl, nachdem ihre Bitte um eine bestimmte Anzahl von Zeiten nach links gedreht wurden.

  • Gibt eine Zahl zurück, deren Bit sich logisch nach links verschoben wurde.

  • Rückgibt eine Zahl, nachdem ihre Bitte um einen bestimmten Zeitpunkt drehen wurde.

  • Gibt eine Zahl zurück, deren Bit sich logisch auf die rechte Seite verschoben wurde.

Funktionen

arshift

Kehre die Zahl x Shifted disp Bits nach rechts zurück. Die Zahl disp kann ein beliebiges repräsentables Zahl sein. Negative Verschiebungen verschieben nach links.

Diese Verschiebung ist dasjenige, was als arithmetisches Verschieben bekannt ist. Die freien Bits links werden mit Kopien des höheren Bits von x gefüllt; die freien Bits rechts werden mit Nullen gefüllt. Im Besonderen sind Displaceds mit absoluten Werten höher als 31 durch Null oder 0xFFFFFFFF (alle ursprünglichen Bits werden verschoben).

Parameter

Die Anzahl, deren Bits verschoben werden.

disp: number

Die integere Anzahl von Bits, um zu verschieben.

Rückgaben

band

Rückgibt das bitwise und von allen angegebenen Zahlen.

Jeder Bite wird gegen die folgende Wahrheitsliste getestet:


<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>
EinBAusgabe
Bitwise AND of 3 numbers

Parameter

numbers: Tuple

Rückgaben

bnot

Kehrt die bitwise Negation von x zurück.

Negation of a provided number

Für jede ganze Zahl x , die folgende Identität hält:


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

Parameter

Rückgaben

Gibt das bitwise ODER aller bereitgestellten Zahlen zurück.

Jeder Bite wird gegen die folgende Wahrheitsliste getestet:


<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>
EinBAusgabe
Bitwise OR of 3 numbers

Parameter

numbers: Tuple

Rückgaben

btest

Gibt einBoolean-Signal zurück, ob das bitwise und seiner Operatoren von der Null abweicht.

Parameter

numbers: Tuple

Rückgaben

bxor

Kehrt die bitwise XOR aller bereitgestellten Zahlen zurück.

Jeder Bite wird gegen die folgende Wahrheitsliste getestet:


<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>
EinBAusgabe
Bitwise XOR of 3 numbers

Parameter

numbers: Tuple

Rückgaben

byteswap

Gibt die angegebene Zahl mit der Reihenfolge der getauschten Bytes zurück.

Parameter

Rückgaben

countlz

Gibt die Anzahl der niedrigsten Einheiten in der 32-Bit-Repräsentation der angegebenen Zahl aus dem linken (am meisten wichtigen) Bit zurück. Gibt 32 zurück, wenn die angegebene Zahl null ist.

Parameter

Rückgaben

countrz

Gibt die Anzahl der niedrigsten Zerostellen in der 32-Bit-Repräsentation der angegebenen Zahl zurück, beginnend mit dem rechten (kleinsten) Bit. Wenn die angegebene Zahl null ist, gibt es 32 zurück.

Parameter

Rückgaben

extract

Gibt die mit den Bits field zu field + width - 1 von n . Bits sind von 0 (am wenigsten signifikant) bis 31 (am meisten signifikant) nummeriert. Alle zugänglichen Bits müssen in der Reichweite [0, 31] sein. Standard für 1> wide1> ist 4> 宽

Parameter

field: number
width: number
Standardwert: 1

Rückgaben

replace

Kehrt eine Kopie von n mit den Bits field zu field + width - 1 zurück, die durch den Wert 1> v1> ersetzt wird. Siehe 4> Library.bit32.assign()4> für Details über 7> field7> und 0> width0> .

Parameter

field: number
width: number
Standardwert: 1

Rückgaben

lrotate

Kehre die Zahl x gedrehte disp -Blöcke links zurück. Die Zahl disp kann eine beliebige ganzzahligsein. Für jeden gültigen Versatz hält die folgende Identität:


assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32))

Insbesondere negative Verschiebungen drehen sich rechts.

Parameter

disp: number

Rückgaben

lshift

Kehre die Zahl x mit verschobenen disp-Bitumen nach links zurück. Die Zahl disp kann ein beliebiges repräsentables ganzzahligsein. Negative Verschiebungen verschieben nach rechts. In jeder Richtung sind freie Bit mit Nullen gefüllt. Insbesondere Verschiebungen mit absoluten Werten höher als 31 ergeben Null (alle Bit werden verschoben).

Number shifted 3 to the left

Für positive Abweichungen gilt Folgendes Gleichheitsverhältnis:


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

Parameter

disp: number

Rückgaben

rrotate

Kehre die Zahl x gedrehte disp Bits rechts zurück. Die Zahl disp kann eine beliebige ganzzahligdarstellen.

Für jeden gültigen Versetzungszug gilt Folgendes:


assert(bit32.rrotate(x, disp) == bit32.rrotate(x , disp % 32))

Insbesondere negative Verschiebungen drehen sich links.

Parameter

disp: number

Rückgaben

rshift

Kehre die Zahl x mit verschobenen disp-Bit zu der Rechten zurück. Die Zahl disp kann ein beliebiges repräsentables ganzzahligsein. Negative Verschiebungen verschieben nach links. In jeder Richtung sind freie Bit mit Nullen gefüllt. Insbesondere Verschiebungen mit absoluten Werten höher als 31 ergeben Null (alle Bit werden verschoben).

Number shifted 3 to the right

Für positive Abweichungen gilt Folgendes Gleichheitsverhältnis:


assert(bit32.rshift(b, disp) == math.floor(b % 2^32 / 2^disp))

Diese Schaltflächen操作 ist das, was als logischer Schaltflächen-Shift bekannt ist.

Parameter

disp: number

Rückgaben