bit32

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Thư viện này cung cấp các hàm để thực hiện các hoạt động bitwise.

Giới hạn số

Thư viện này xử lý các số như là những số 32-bit đã ký; số sẽ được chuyển thành này trước khi được sử dụng (xem hình ảnh bên dưới). Số với số thập phân được tròn lên đến số thập phân gần nhất.

32-bit integer conversion (in hexadecimal)

Tóm Tắt

Chức Năng

  • Trả lại một số sau khi các bit của nó đã được dịch chuyển theo một hướng nào đó bởi một hướng dịch được cho.

  • band(numbers : Tuple):number

    Trả lại bitwise VÀ của tất cả các số đã cung cấp.

  • Trả lại bitwise negation của một số đã được cung cấp.

  • bor(numbers : Tuple):number

    Trả lại bitwise hoặc tất cả các số đã cung cấp.

  • btest(numbers : Tuple):bool

    Trả lại mộtBoolean biểu tượng cho biết có phải lệnh bitwise và các biểu tượng của nó khác với zero không.

  • bxor(numbers : Tuple):number

    Trả lại bitwise XOR của tất cả các số đã cung cấp.

  • Trả lại số đã được đổi trong trận.

  • Trả lại số lượng bit liên tục là số lẻ lắn trong đại diện 32-bit của số đã được bắt đầu từ bit đầu tiên (bit lớn nhất) bên trái.

  • Trả lại số lượng các ký tự số liên tục là zero trong đại diện 32-bit của số này bắt đầu từ bit đầu tiên (ít đáng nhất) của số này.

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

    Tách một loạt các bit từ một số và trả chúng như một số không ký hiệu.

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

    Trả lại một bản sao của một số với một loạt các bit được thay thế bằng giá trị được cung cấp.

  • Trả lại một số sau khi các bit của nó đã được quay sang bên trái bởi một số lần nhất định.

  • Trả lại một số có các bit đã được di chuyển theo một lượng di chuyển nhất định để bên trái.

  • Trả lại một số sau khi các bit của nó đã được quay về phải bởi một số lần nhất định.

  • Trả lại một số có các bit đã được di chuyển theo nghĩa đen sang phải bởi một khoảng cách nhất định.

Chức Năng

arshift

Trả lại số x đã dịch chuyển disp bit đến phải. Số disp có thể là bất kỳ số có thể diễn tả. Dịch chuyển âm dương bên trái.

Đây là hoạt động dịch chuyển arithmetic. Các bit rỗ trống ở bên trái được điền bằng bản sao của bit cao hơn trên bên phải. Vacant bit ở bên trái được điền bằng zeros. Đặc biệt, dịch chuyển với giá trị đơn vị đơn vị đơn vị đơn vị

Tham Số

Số người whose bits shall be shifted.

disp: number

Số lượng bit lẻ để chuyển.

Lợi Nhuận

band

Trả lại bitwise VÀ của tất cả các số đã cung cấp.

Mỗi bit được thử nghiệm chống lại bảng sự thật sau đây:


<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>
MộtBThoát
Bitwise AND of 3 numbers

Tham Số

numbers: Tuple

Lợi Nhuận

bnot

Trả lại bitwise negation của x .

Negation of a provided number

Đối với bất kỳ số nào x, hệ thống nhận dạng sau đây được giữ:


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

Tham Số

Lợi Nhuận

Trả lại bitwise hoặc tất cả các số đã cung cấp.

Mỗi bit được thử nghiệm chống lại bảng sự thật sau đây:


<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>
MộtBThoát
Bitwise OR of 3 numbers

Tham Số

numbers: Tuple

Lợi Nhuận

btest

Trả về một dấu hiệuBoolean cho biết liệu bitwise của các hàm số của nó có khác với zero không.

Tham Số

numbers: Tuple

Lợi Nhuận

bxor

Trả lại bitwise XOR của tất cả các số đã cung cấp.

Mỗi bit được thử nghiệm chống lại bảng sự thật sau đây:


<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>
MộtBThoát
Bitwise XOR of 3 numbers

Tham Số

numbers: Tuple

Lợi Nhuận

byteswap

Trả lại số đã được đổi trong trận.

Tham Số

Lợi Nhuận

countlz

Trả lại số lượng các bit 0 liên tục trong đại diện 32-bit của số đã được bắt đầu từ bit đầu tiên (bit đầu tiên nhất) bên trái. Trả lại 32 nếu số đã được cung cấp là 0.

Tham Số

Lợi Nhuận

countrz

Trả lại số lượng các bit 0 liên tục trong đại diện 32-bit của số đã được bắt đầu từ bit đầu tiên bên phải (ít đáng nhất). Trả lại 32 nếu số đã được cung cấp là 0.

Tham Số

Lợi Nhuận

extract

Trả về số ký hiệu được hình thành bởi các bit field đến field + width - 1 từ n . Các bit được đếm từ 0 (ít nhất) đến 31 (lớn nhất). Tất cả các bit đều ph

Tham Số

field: number
width: number
Giá Trị Mặc Định: 1

Lợi Nhuận

replace

Trả lại một bản sao của n với các bit field đến field + width - 1 được thay thế bằng giá trị 1> v1> . Xem để chi tiết về 4> Library.bit32.assign()

Tham Số

field: number
width: number
Giá Trị Mặc Định: 1

Lợi Nhuận

lrotate

Trả về số x quay disp bên trái. Số disp có thể là bất kỳ số có thể di chuyển. Đối với bất kỳ địa chỉ di chuyển hợp lệ, mệnh danh sau đây được giữ:


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

Đặc biệt, di chuyển tiêu cực xoay về phải.

Tham Số

disp: number

Lợi Nhuận

lshift

Trả lại số x đã dịch chuyển disp bit đến bên trái. Số disp có thể là bất kỳ số đại diện nào. Dịch chuyển âm dương dịch chuyển đến phải. Ở bất kỳ hướng nào, dịch

Number shifted 3 to the left

Đối với những biến đổi tích cực, hàm số sau đây giữ:


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

Tham Số

disp: number

Lợi Nhuận

rrotate

Trả lại số x quay disp bên phải. Số disp có thể là bất kỳ số có thể diễn tả.

Đối với bất kỳ bị đổi giải quyết, mối quan hệ dưới đây giữ:


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

Đặc biệt, di chuyển tiêu cực để bên trái.

Tham Số

disp: number

Lợi Nhuận

rshift

Trả lại số x đã dịch chuyển disp bit đến phải. Số disp có thể là bất kỳ số có thể diễn tả. Dịch chuyển dương dịch chuyển đến bên trái. Ở bất kỳ hướng nào, dịch chuyể

Number shifted 3 to the right

Đối với những biến đổi tích cực, hàm số sau đây giữ:


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

Đây là hoạt động chuyển đổi logic được gọi là chuyển đổi logic.

Tham Số

disp: number

Lợi Nhuận