bit32

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

此库提供用于执行单向操作的函数。

数量限制

此库将数字处理为未签名的 32 位整数;数字将在使用前转换为此(见图像下)。使用不带小数的数字将回合到最近的整数。

32-bit integer conversion (in hexadecimal)

概要

职能

职能

arshift

返回数字 x 已Shift到右边。数字 disp 可以是任何可表示的整数。负向 displacements 将向左移。

这个Shift操作是所谓的Shift操作。 空白位置上的剩余位置是由x 的高位元的副本填充; 剩余位置上的零位是由零填充。 特别是,由于绝对值高于31导致零或0XXXXFF (所有原始位置都已移出)。

参数

将要移动的位数。

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

返回一个Boolean标志,表示其操作员的 bitwise 不同于零。

参数

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>
B输出
Bitwise XOR of 3 numbers

参数

numbers: Tuple

返回

byteswap

返回交换的字节的顺序。

参数

返回

countlz

返回提供的数字的 32 位表示中的连续零位数。如果提供的数字为零,返回 32。

参数

返回

countrz

返回提供的数字开始从右最小(最不重要)位开始的 32 位表示中的连续零位数。如果提供的数字为零,返回 32。

参数

返回

extract

将由 bits fieldfield + width - 1n 返回。 Bits 由 0 (最小) 到 31 (最大) 。 所有访问的 Bits 必须在范围 [0, 31] 之间。 默认值为 1> 宽度1> 是 1。

参数

field: number
width: number
默认值:1

返回

replace

返回一个带有 nfield 的副本,替换为值 field + width - 1 。 请参阅 2>Library.bit32.Extract()2> 了解有关 5>field5> 和 8>宽度8> 。

参数

field: number
width: number
默认值:1

返回

lrotate

返回 x 旋转 dis 位零件到左边。 dis 的数字可以是任何可表示的整数。 对于任何有效的替换,以下身份持有:


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

特别是,负向移动会旋转到右侧。

参数

disp: number

返回

lshift

返回数字 x 已向左移动的位移 disp 位移的位数。 disp 位移可以是任何可表示的整数。 在任意方向上,向右移动会导致零。 在任意方向上,向空位移会导致零。

Number shifted 3 to the left

对于正向移动,以下公式适用:


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

参数

disp: number

返回

rrotate

将数字 x 旋转为右侧。数字 disp 可以表示任何可表示的整数。

对于任何有效的替换,以下身份持有:


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

特别是,负向移动会旋转到左。

参数

disp: number

返回

rshift

返回数字 x 已移动到右边。数字 disp 可以是任何可表示的整数。负向移动将向左移动。在任何方向,零向上移动都会填充为零。特히,与绝对值高于 31 的向量向左移动会返回零。

Number shifted 3 to the right

对于正向移动,以下公式适用:


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

这个Shift操作是什么叫做 logical shift。

参数

disp: number

返回