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 zur Durchführung von Bit-Operationen.

Zahlungsbeschränkungen

Diese Bibliothek behandelt Zahlen als unsignierte 32-Bit-Zahlen; Zahlen werden vor der Verwendung konvertiert (siehe Bild unten).Zahlen mit Dezimalzahlen werden auf die nächste ganze Zahl gerundet.

32-bit integer conversion (in hexadecimal)

Zusammenfassung

Funktionen

  • Gibt eine Zahl zurück, nachdem ihre Bits durch einen gegebenen Versatz arithmetisch nach rechts verschoben wurden.

  • band(numbers : Tuple):number

    Gibt das bitweise AND aller bereitgestellten Zahlen zurück.

  • Gibt die bitweise Negation einer bestimmten Zahl zurück.

  • bor(numbers : Tuple):number

    Gibt das bitweise ODER aller bereitgestellten Zahlen zurück.

  • btest(numbers : Tuple):boolean

    Gibt einen booleschen Wert zurück, der beschreibt, ob das Bitwise und seine Operanden von Null abweichen.

  • bxor(numbers : Tuple):number

    Gibt das bitweise XOR aller bereitgestellten Zahlen zurück.

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

  • Gibt die Anzahl der aufeinanderfolgenden Nullbits in der 32-Bit-Darstellung der angegebenen Zahl ab, beginnend mit dem linken (bedeutendsten) Bit.

  • Gibt die Anzahl der aufeinanderfolgenden Nullbits in der 32-Bit-Darstellung der angegebenen Zahl ab, beginnend mit dem rechtsletzten (unbedeutendsten) Bit.

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

    Extrahiere eine Reihe von Bits aus einer Zahl und gib sie als unsignierte Zahl zurück.

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

    Gib eine Kopie einer Zahl mit einer Reihe von Bits zurück, die durch einen angegebenen Wert ersetzt wurden.

  • Gibt eine Zahl zurück, nachdem ihre Bits von einer bestimmten Anzahl von Mal nach links gedreht wurden.

  • Gibt eine Zahl zurück, deren Bits durch eine gegebene Verschiebung logisch nach links verschoben wurden.

  • Gibt eine Zahl zurück, nachdem ihre Bits durch eine bestimmte Anzahl von Mal nach rechts gedreht wurden.

  • Gibt eine Zahl zurück, deren Bits durch eine gegebene Verschiebung logisch nach rechts verschoben wurden.

Funktionen

arshift

Gibt die Zahl x verschoben disp Bits nach rechts zurück.Die Zahl disp kann eine beliebige repräsentierbare Zahl sein.Negative Verschiebungen verschieben sich nach links.

Diese Verschiebungsoperation wird als arithmetische Verschiebung bezeichnet.Unbesetzte Bits auf der linken Seite werden mit Kopien des höheren Bits von x gefüllt; unbesetzte Bits auf der rechten Seite werden mit Nullen gefüllt.Insbesondere bewirken Verschiebungen mit absoluten Werten über 31 eine Null oder 0xFFFFFFFF (alle ursprünglichen Bits werden verschoben).

Parameter

Die Zahl, deren Bits verschoben werden sollen.

disp: number

Die ganze Zahl der Bits, die verschoben werden.

Rückgaben

band

Gibt das bitweise AND aller bereitgestellten Zahlen zurück.

Jedes Bit wird gegen die folgende Wahrheitstabelle getestet:


<th>B</th>
<th>Ausgang</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
Bitwise AND of 3 numbers

Parameter

numbers: Tuple

Rückgaben

bnot

Gibt die bitweise Negation von x zurück.

Negation of a provided number

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


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

Parameter

Rückgaben

Gibt das bitweise ODER aller bereitgestellten Zahlen zurück.

Jedes Bit wird gegen die folgende Wahrheitstabelle getestet:


<th>B</th>
<th>Ausgang</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
Bitwise OR of 3 numbers

Parameter

numbers: Tuple

Rückgaben

btest

Gibt ein boolesches Signal zurück, ob das Bitwise und seiner Operanden von Null abweicht.

Parameter

numbers: Tuple

Rückgaben

bxor

Gibt das bitweise XOR aller bereitgestellten Zahlen zurück.

Jedes Bit wird gegen die folgende Wahrheitstabelle getestet:


<th>B</th>
<th>Ausgang</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
Bitwise XOR of 3 numbers

Parameter

numbers: Tuple

Rückgaben

byteswap

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

Parameter

Rückgaben

countlz

Gibt die Anzahl der aufeinanderfolgenden Nullbits in der 32-Bit-Darstellung der angegebenen Zahl ab, beginnend mit dem linken (bedeutendsten) Bit.Gibt 32 zurück, wenn die angegebene Zahl Null ist.

Parameter

Rückgaben

countrz

Gibt die Anzahl der aufeinanderfolgenden Nullbits in der 32-Bit-Darstellung der angegebenen Zahl ab, beginnend mit dem rechtsletzten (unbedeutendsten) Bit.Gibt 32 zurück, wenn die angegebene Zahl Null ist.

Parameter

Rückgaben

extract

Gibt die unsignierte Zahl zurück, die durch die Bits field bis field + width - 1 von n gebildet wird.Bits werden von 0 (am wenigsten signifikant) bis 31 (am bedeutendsten) nummeriert.Alle zugänglichen Bits müssen sich in dem Bereich [0, 31] befinden.Der Standard für width ist 1.

Parameter

field: number
width: number
Standardwert: 1

Rückgaben

replace

Gibt eine Kopie von mit den Bits zurück, die durch den Wert ersetzt wurden.Siehe bit32.extract() für Details über field und width.

Parameter

field: number
width: number
Standardwert: 1

Rückgaben

lrotate

Gibt die Zahl x gedreht disp Bits nach links zurück.Die Zahl disp kann eine beliebige repräsentierbare Zahl sein.Für jede gültige Verschiebung hält die folgende Identität:


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

Insbesondere drehen sich negative Verschiebungen nach rechts.

Parameter

disp: number

Rückgaben

lshift

Gibt die Zahl x verschoben disp Bits nach links zurück.Die Zahl disp kann eine beliebige repräsentierbare Zahl sein.Negative Verschiebungen verschieben sich nach rechts.In jede Richtung werden unbesetzte Bits mit Nullen gefüllt.Insbesondere bewirken Verschiebungen mit absoluten Werten über 31 eine Null (alle Bits werden verschoben).

Number shifted 3 to the left

Für positive Verschiebungen gilt die folgende Gleichheit:


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

Parameter

disp: number

Rückgaben

rrotate

Gibt die Zahl x gedreht disp Bits nach rechts zurück. Die Zahl disp kann eine beliebige repräsentierbare Zahl sein.

Für jede gültige Verschiebung hält die folgende Identität:


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

Insbesondere drehen sich negative Verschiebungen nach links.

Parameter

disp: number

Rückgaben

rshift

Gibt die Zahl x verschoben disp Bits nach rechts zurück.Die Zahl disp kann eine beliebige repräsentierbare Zahl sein.Negative Verschiebungen verschieben sich nach links.In jede Richtung werden unbesetzte Bits mit Nullen gefüllt.Insbesondere bewirken Verschiebungen mit absoluten Werten über 31 eine Null (alle Bits werden verschoben).

Number shifted 3 to the right

Für positive Verschiebungen gilt die folgende Gleichheit:


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

Diese Verschiebungsoperation wird als logische Verschiebung bezeichnet.

Parameter

disp: number

Rückgaben