bit32

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

이 라이브러리는 비트 방식 연산을 수행하는 함수를 제공합니다.

숫자 제한

이 라이브러리는 숫자를 16진수 32비트 정수로 처리합니다. 이 라이브러리에서 사용하기 전에 숫자가 변환됩니다(아래 이미지 참조). 소수 자릿수가 있는 숫자는 반올림됩니다.

32-bit integer conversion (in hexadecimal)

요약

함수

  • 지정된 이동 값으로 부호가 오른쪽으로 이동된 후 반환합니다.Returns a number after its bits have been arithmetically shifted to the right by a given displacement.

  • band(numbers : Tuple):number

    제공된 모든 숫자의 부호 방식을 반환합니다.

  • 지정된 숫자의 부정 반환.

  • bor(numbers : Tuple):number

    제공된 모든 숫자의 부호 또는 부호 없이 반환합니다.

  • btest(numbers : Tuple):bool

    비트 방향과 작업자의 차이를 0과 다르다는 부울 반환

  • bxor(numbers : Tuple):number

    제공된 모든 숫자의 부호 방식 XOR를 반환합니다.

  • 교체된 바이트의 순서로 주어진 숫자를 반환합니다.

  • 왼쪽부터 가장 중요한 비트를 시작으로 32비트 표현의 연속 0비트 수를 반환합니다.Returns the number of consecutive zero bits in the 32-bit representation of the provided number starting from the left-most (most significant) bit.

  • 오른쪽 가장 작은 비트부터 시작하는 제공된 숫자의 32비트 표현에서 순차적 0비트 수를 반환합니다.Returns the number of consecutive zero bits in the 32-bit representation of the provided number starting from the right-most (least significant) bit.

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

    숫자에서 비트 범위를 추출하고 서명되지 않은 숫자로 반환합니다.

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

    지정된 값으로 바뀐 비트 범위의 숫자의 복사본을 반환합니다.

  • 지정된 시간 후 비트가 왼쪽으로 회전된 후 숫자를 반환합니다.Returns a number after its bits have been rotated to the left by a given number of times.

  • 지정된 이동으로 부품의 비트가 왼쪽으로 논리적으로 이동된 경우 해당 숫자를 반환합니다.Returns a number whose bits have been logically shifted to the left by a given displacement.

  • 지정된 시간 후 비트가 오른쪽으로 회전된 후 숫자를 반환합니다.Returns a number after its bits have been rotated to the right by a given number of times.

  • 지정된 이동으로 부품의 비트가 논리적으로 오른쪽으로 옮겨진 경우 해당 숫자를 반환합니다.Returns a number whose bits have been logically shifted to the right by a given displacement.

함수

arshift

오른쪽으로 이동된 왼쪽 셀에 있는 숫자 x 를 반환합니다. 오른쪽 셀에 있는 숫자 disp 는 모든 표시 가능한 정수를 나타낼 수 있습니다. 부정수 이동은 왼쪽으로 이동됩니다.

이 이동 작업은 아리픽 이동 작업이라고 합니다. 왼쪽의 빈 비트는 x 의 상위 비트의 복사본으로 채워집니다. 오른쪽의 빈 비트는 x 의 0개를 채우고 있습니다. 특히 31보다 큰 값의 이동은 0이나 0xFFFFFFFF(모든 원래 비트가 이동

매개 변수

비트가 옮겨질 번호.

disp: number

Shift할 비트 수의 정수 값입니다.

반환

band

제공된 모든 숫자의 부호 방식을 반환합니다.

각 비트는 다음 진실 테이블에 대해 테스트됩니다.


<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의 부정 반환 작업을 반환합니다.

Negation of a provided number

모든 정수 x 에 대해 다음 식별자가 유지됩니다.


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

매개 변수

반환

제공된 모든 숫자의 부호 또는 부호 없이 반환합니다.

각 비트는 다음 진실 테이블에 대해 테스트됩니다.


<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

비트 단위의 비트가 0과 다른지 여부를 나타내는 부울 신호를 반환합니다.

매개 변수

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비트 표현의 연속 0바이트를 반환합니다. 제공된 숫자가 0인 경우 32를 반환합니다.

매개 변수

반환

countrz

제공된 숫자의 오른쪽 가장 작은(가장 의미가 적은) 비트부터 시작하는 32비트 표현의 연속 0비트를 반환합니다. 제공된 숫자가 0인 경우 32를 반환합니다.

매개 변수

반환

extract

비트 더하기 연산자 fieldfield + width - 1 에서 n 로 반환합니다. 비트는 0 (가장 작은 비트)에서 31 (가장 큰 비트)까지 숫자됩니다. 액세스 된 모든 비트는 범위 [0, 31] 이어야

매개 변수

field: number
width: number
기본값: 1

반환

replace

field 및 field를 바꾸어 줍니다. field + width - 1 및 1>field + 너비 - 11>를 바꾸어 줍니다. 4>field4> 및 7>wide7>를 바꾸어 줍

매개 변수

field: number
width: number
기본값: 1

반환

lrotate

왼쪽에 회전된 x 비트의 숫자를 반환합니다. disp 숫자는 모든 표시 가능한 정수입니다. 유효한 이동에 대해 다음 식별자가 유지됩니다.


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

특히 부정 이동은 오른쪽으로 회전합니다.

매개 변수

disp: number

반환

lshift

왼쪽에서 x 바꾸어 된 번호 disp 를 반환합니다. disp 는 모든 표시 가능한 정수입니다. 부정 이동은 오른쪽으로 이동합니다. 모든 방향에서 비어 있는 비트는 0으로 채워집니다. 특히, 31보다 큰 값의

Number shifted 3 to the left

양의 이동에 대해 다음과 같은 평등이 성립합니다.


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

매개 변수

disp: number

반환

rrotate

오른쪽에 회전된 x 비트를 반환합니다. 숫자 disp 는 모든 표시 가능한 정수입니다.

유효한 모든 이동에는 다음과 같은 식별자가 포함됩니다.For any valid displacement, the following identity holds:


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

특히 부정 이동은 왼쪽으로 회전합니다.

매개 변수

disp: number

반환

rshift

오른쪽으로 이동된 비트 수 x 를 반환합니다. 오른쪽 수 disp 는 모든 표시 가능한 정수입니다. 부정 이동은 왼쪽으로 이동됩니다. 모든 방향에서 비어 있는 비트는 0(모든 비트는 31보다 작은 값으로 이동됩니다

Number shifted 3 to the right

양의 이동에 대해 다음과 같은 평등이 성립합니다.


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

이 셰프트 연산은 논리적 셰프트라고 합니다.

매개 변수

disp: number

반환