bit32

사용되지 않는 항목 표시

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

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

숫자 제한

이 라이브러리는 숫자를 32비트 부호 없는 정수로 처리하며, 사용하기 전에 숫자가 이로 변환됩니다(아래 이미지 참조).소수 자릿수가 있는 숫자는 가장 가까운 정수로 반올림됩니다.

32-bit integer conversion (in hexadecimal)

요약

함수

  • 비트가 지정된 이동으로 인해 오른쪽으로 산술적으로 이동된 후에 숫자를 반환합니다.

  • band(numbers : Tuple):number

    제공된 모든 숫자의 비트 연산 AND를 반환합니다.

  • 지정된 숫자의 비트 부정을 반환합니다.

  • bor(numbers : Tuple):number

    제공된 모든 숫자의 비트 단위 OR를 반환합니다.

  • btest(numbers : Tuple):boolean

    비트 및 해당 피연산자가 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

    지정된 값으로 바뀐 범위의 숫자 복사본을 반환합니다.Return a copy of a number with a range of bits replaced by a given value.

  • 비트가 지정된 횟수만큼 왼쪽으로 회전된 후 숫자를 반환합니다.

  • 지정된 이동으로 비트가 왼쪽으로 논리적으로 이동된 숫자를 반환합니다.

  • 비트가 지정된 횟수만큼 오른쪽으로 회전된 후 숫자를 반환합니다.

  • 지정된 이동으로 비트가 오른쪽으로 논리적으로 이동된 숫자를 반환합니다.

함수

arshift

오른쪽으로 이동된 숫자 x 비트를 반환합니다. disp숫자 disp 는 표현 가능한 정수일 수 있습니다.부정 이동은 왼쪽으로 이동합니다.

이 Shift 작업은 산술 이동이라고 불리는 작업입니다.왼쪽의 비어 있는 비트는 x의 상위 비트 복사본으로 채워지고, 오른쪽의 비어 있는 비트는 0으로 채워집니다.특히 31보다 큰 절대 값을 가진 이동은 0 또는 0xFFFFFFFF(모든 원래 비트가 이동됨)로 결과가 됩니다.

매개 변수

비트가 이동될 숫자입니다. The number whose bits shall be shifted.

disp: number

이동할 비트 수의 정수입니다.

반환

band

제공된 모든 숫자의 비트 연산 AND를 반환합니다.

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


<th>B</th>
<th>출력</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

매개 변수

numbers: Tuple

반환

bnot

x의 비트 부정을 반환합니다.

Negation of a provided number

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


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

매개 변수

반환

제공된 모든 숫자의 비트 단위 OR를 반환합니다.

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


<th>B</th>
<th>출력</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

매개 변수

numbers: Tuple

반환

btest

연산자의 bitwise 가 0과 다른지 여부를 보고하는 부울 반환합니다.Returns a boolean signaling whether the bitwise and of its operands is different from zero.

매개 변수

numbers: Tuple

반환

bxor

제공된 모든 숫자의 비트 연산 XOR를 반환합니다.

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


<th>B</th>
<th>출력</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

매개 변수

numbers: Tuple

반환

byteswap

바이트를 교환한 순서로 지정된 숫자를 반환합니다.

매개 변수

반환

countlz

제공된 숫자의 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.제공된 숫자가 0인 경우 32를 반환합니다.

매개 변수

반환

countrz

제공된 숫자의 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.제공된 숫자가 0인 경우 32를 반환합니다.

매개 변수

반환

extract

비트 field 에서 field + width - 1 로 형성된 부호 없는 숫자를 반환합니다.Returns the unsigned number formed by the bits to from n.비트는 0(가장 작은 의미)에서 31(가장 중요한)까지 번호가 매겨집니다.액세스된 모든 비트는 [0, 31] 범위에 있어야 합니다.기본값은 width 에 1입니다.

매개 변수

field: number
width: number
기본값: 1

반환

replace

비트 n 를 사용하여 복사본을 반환하며, 값 field 가 대체됩니다.Returns a copy of with the bits to field + width - 1 replaced by the value v .자세한 내용은 bit32.extract()fieldwidth 에 대한 참조하십시오.

매개 변수

field: number
width: number
기본값: 1

반환

lrotate

숫자 x 회전된 disp 비트를 왼쪽으로 반환합니다.숫자 disp 는 표현 가능한 정수일 수 있습니다.유효한 이동에 대해, 다음 식별자가 유지됩니다:


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

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

매개 변수

disp: number

반환

lshift

왼쪽으로 이동된 숫자 x 비트를 반환합니다. disp숫자 disp 는 표현 가능한 정수일 수 있습니다.부정 이동은 오른쪽으로 이동합니다.어느 방향으로든 비어있는 비트는 0으로 채워집니다.특히, 31보다 큰 절대 값을 가진 이동은 0으로 결과가 나타납니다(모든 비트가 이동됨).

Number shifted 3 to the left

긍정적인 이동량의 경우 다음 평등성이 유지됩니다:


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

매개 변수

disp: number

반환

rrotate

오른쪽으로 회전된 숫자 비트 수를 반환합니다. 숫자 는 표현 가능한 정수일 수 있습니다.

유효한 이동에 대해, 다음 식별자가 유지됩니다:


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

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

매개 변수

disp: number

반환

rshift

오른쪽으로 이동된 숫자 x 비트를 반환합니다. disp숫자 disp 는 표현 가능한 정수일 수 있습니다.부정 이동은 왼쪽으로 이동합니다.어느 방향으로든 비어있는 비트는 0으로 채워집니다.특히, 31보다 큰 절대 값을 가진 이동은 0으로 결과가 나타납니다(모든 비트가 이동됨).

Number shifted 3 to the right

긍정적인 이동량의 경우 다음 평등성이 유지됩니다:


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

이 이동 작업은 논리적 이동이라고 합니다.

매개 변수

disp: number

반환