bit32

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

このライブラリは、bitwise 操作を実行する機能を提供します。

数値の制限

このライブラリは、数を 32 ビットのインテリジェントな整数として扱います。数は、使用する前にこれに変換されます (画像を参照してください)。 10 桁の数は、最も近い整数にラウンドされます。

32-bit integer conversion (in hexadecimal)

概要

関数

  • 指定されたオフセットで、ビットの右側に数値が移動した後に戻ります。

  • band(numbers : Tuple):number

    提供されたすべての数の bitwise を返します。

  • 指定された数値の bitwise 否定を返します。

  • bor(numbers : Tuple):number

    提供されたすべての数の bitwise またはを返します。

  • btest(numbers : Tuple):bool

    bitwise とオペレートの違いをゼロかどうかを記述するブールーンを返します。

  • bxor(numbers : Tuple):number

    提供されたすべての数の XOR を返します。

  • 与えられた番号を、バイトの交換の順序で返します。

  • 左最も (最も重要な) ビットから開始する 32 ビット表示の提供された番号の連続したゼロビットを返します。

  • 32ビット表示の開始時点の右最小のビットから始まる、提供された数の連続したゼロビットを返します。

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

    数値からビットの範囲を抽出し、署名されていない数値として返します。

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

    指定された値によって置き換えられたビットの範囲を持つコピーを返します。

  • 指定された回数でビットが左に回転した後に、数字を返します。

  • 指定されたオフセットで、ビットが論理的に左にシフトされた数を返します。

  • 指定された回数で、ビットが回転した後に戻り値を返します。

  • 指定されたオフセットで、ビットが論理的に右にシフトされた数を返します。

関数

arshift

左にシフトされた x ビットを戻します。disp ビットは任意の表示可能な整数です。disp は、左にシフトされます。

このシフトオペレーションは、「数学的シフト」と呼ばれます。左側の空きビットは、x の上位のビットのコピーで満たされます。右側の空きビットは、x のコピーで満たされます。特に、31以上のディスプレースは、0または 0XXXXXXXXX (すべてのオリジナルビットが上

パラメータ

シフトするビットの番号。

disp: number

シフトするビットの整数数。

戻り値

band

提供されたすべての数の bitwise を返します。

それぞれのビットは次の真実のテーブルにテストされます:


<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>
ABアウトプット
Bitwise AND of 3 numbers

パラメータ

numbers: Tuple

戻り値

bnot

x の bitwise negation を返します。

Negation of a provided number

For any integer x , the following identity holds:


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

パラメータ

戻り値

提供されたすべての数の bitwise またはを返します。

それぞれのビットは次の真実のテーブルにテストされます:


<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>
ABアウトプット
Bitwise OR of 3 numbers

パラメータ

numbers: Tuple

戻り値

btest

操作子の bitwise がゼロと異なるかどうかを示すBoolean のサインを返します。

パラメータ

numbers: Tuple

戻り値

bxor

提供されたすべての数の XOR を返します。

それぞれのビットは次の真実のテーブルにテストされます:


<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>
ABアウトプット
Bitwise XOR of 3 numbers

パラメータ

numbers: Tuple

戻り値

byteswap

与えられた番号を、バイトの交換の順序で返します。

パラメータ

戻り値

countlz

左最大 (最も重要な) ビットから開始された 32 ビットの表示の中の連続したゼロビットを返します。ゼロビットが提供されている場合は、32 を返します。

パラメータ

戻り値

countrz

提供された数の 32 ビット表示の右側 (最小限の) ビットから開始する 0 ビットの連続値を返します。提供された数が 0 の場合は、32 を返します。

パラメータ

戻り値

extract

ビット field のサインを使用して、field からfield + width - 1 に、n から2>n2> までの範囲内のビットを返します。ビットは、0 (最小) から 31 (最大) まで、4>幅4> から 7>n7> ま

パラメータ

field: number
width: number
既定値: 1

戻り値

replace

field のビット fieldfield + width - 1 で返します。1> v1> に置き換えられました。詳細は 4> Library.bit32.assign()4> を参照してください。7> field7> と 0> wide

パラメータ

field: number
width: number
既定値: 1

戻り値

lrotate

左に回転した disp ビットの数を返します。 disp は任意の表示可能な整数です。有効などのオフセットの場合、次のアイデンティティは次の値を含みます:


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

特に、ネガティブなディスプレーションは右に回転します。

パラメータ

disp: number

戻り値

lshift

x がShifted disp の左に返されます。disp は任意の表示可能な整数です。ネガティブのShifted 1>right1> は、4>x4> の上にあります。任意の方向に、空きビットはゼロで満たされます。たとえ相対値が 31 以上の場合で

Number shifted 3 to the left

正の位置移動の場合、以下の等式が成ります:


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

パラメータ

disp: number

戻り値

rrotate

x を回転させた disp ビットを右に返します。disp は任意の表示可能な整数です。

有効なすべての変更には、次の身元確認書を保持してください:


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

特に、ネガティブなディスプレーションは左に回転します。

パラメータ

disp: number

戻り値

rshift

x がShifted disp の右に移動したビットを返します。disp は任意の表示可能な整数です。ネガティブのShifted 1>disп1> は、4>x4> からゼロに移動します。任意の方向に、空きビットはゼロで満たされます。たとえ相対値

Number shifted 3 to the right

正の位置移動の場合、以下の等式が成ります:


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

このシフトオペレーションは、論理シフトと呼ばれます。

パラメータ

disp: number

戻り値