bit32

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

此資料庫提供執行位元操作的功能。

數量限制

此資料庫將數字處理為未簽名的 32 位整數;數字將在使用前被轉換為此 (請參閱下方圖像)。使用裝置上的數字會圍算至最近的整數。

32-bit integer conversion (in hexadecimal)

概要

函式

函式

arshift

返回 x 已移動的位元 disp 位元到右邊。 disp 位元可以是任何可表示的整數。負位移動會移動到左邊。

這個Shift操作是所謂的ArithmeticShift。 在左側的空白位置填滿了x的更高位元的副本; 在右側的空白位置填滿了x或0XXXXXXXX (所有原始位元都已移動到0)。 特別是用於31以上的位置的移動會導致零或0XXXXXXXX (所有位元都已移動到0)。

參數

其位元的數量。

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>
一個B輸出
Bitwise AND of 3 numbers

參數

numbers: Tuple

返回

bnot

返回 x 的位元否認。

Negation of a provided number

對於任何整數 x ,下列身份值持有:


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>
一個B輸出
Bitwise OR of 3 numbers

參數

numbers: Tuple

返回

btest

返回是否為其操作 的零位元不同的指向。

參數

numbers: Tuple

返回

bxor

返回所有提供的數字的 bitwise 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>
一個B輸出
Bitwise XOR of 3 numbers

參數

numbers: Tuple

返回

byteswap

返回交換的位元的順序。

參數

返回

countlz

返回提供的數字 32 位代表中的連續零位數。如果提供的數字為零,則返回 32 個。

參數

返回

countrz

返回提供的數字的 32 位代表中的連續零位數。如果提供的數字為零,則返回 32 個。

參數

返回

extract

將由 field 形成的簽名數字返回 field + width - 1n 。 位元由 0 (最小) 到 31 (最大) 。 所有存取位元必須在範圍內。 預設值為 1>宽度1> 。 預設值為 4>寬度4> 。

參數

field: number
width: number
預設值:1

返回

replace

返回 n 的副本,其位元 field 與位元 field + width - 1 交換為值 1> v1>。 請參閱 4> Library.bit32.assign()4> 了解有關 7> field7> 和 0> 宽度

參數

field: number
width: number
預設值:1

返回

lrotate

返回 x 旋轉的 disp 位元到左邊。 disp 數字可以是任何可表示的整數。對於任何有效的擴展,下列身份值持有:


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

特別是,負移動量會旋轉到右邊。

參數

disp: number

返回

lshift

返回數字 x 已移動到左邊。數字 disp 可以是任何可表示的整數。負向移動會移動到右邊。在任何方向上,剩餘位子都會填滿零。特別是負向移動會結果零 (所有位子都會移動到零)。

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 已移動到右邊的 disp 位元。數字 disp 可以是任何可表示的整數。負位移位移到左邊。在任何方向上,零位移位會移動到右邊。

Number shifted 3 to the right

對於正向移動,以下等式保持:


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

這個Shift操作是什麼所謂的 logicalShift。

參數

disp: number

返回