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 chức năng để thực hiện các hoạt động bitwise.

Giới hạn số lượng

Thư viện này xử lý các số như số không có dấu 32 bit; các số sẽ được chuyển đổi thành số này trước khi được sử dụng (xem hình ảnh bên dưới).Các số với số thập phân được làm tròn lên số tự nhiên gần nhất.

32-bit integer conversion (in hexadecimal)

Tóm Tắt

Chức Năng

  • Trả về một số sau khi các bit của nó đã được chuyển sang phải theo toán học bởi một khoảng cách được cho trước.

  • band(numbers : Tuple):number

    Trả về AND bitwise của tất cả các số được cung cấp.

  • Trả về sự phủ nhận bitwise của một số nhất định.

  • bor(numbers : Tuple):number

    Trả về OR bitwise của tất cả các số được cung cấp.

  • btest(numbers : Tuple):boolean

    Trả về một boolean mô tả xem liệu bitwise và các tham số của nó có khác với 0 hay không.

  • bxor(numbers : Tuple):number

    Trả về XOR bitwise của tất cả các số được cung cấp.

  • Trả về số được cho với thứ tự của các bayt đã đổi.

  • Trả về số lượng bit liên tục không có trong đại diện 32 bit của số cung cấp bắt đầu từ bit lớn nhất (quan trọng nhất).

  • Trả về số lượng bit liên tục không có trong đại diện 32 bit của số cung cấp bắt đầu từ bit có ý nghĩa nhất (ít nhất) bên phải.

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

    Chiết xuất một phạm vi bit từ một số và trả lại chúng như một số không có dấ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 phạm vi bit được thay thế bởi một giá trị đã cho.

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

  • Trả về một số mà các bit của nó đã được chuyển sang bên trái theo nghĩa logic bởi một chuyển đổi nhất định.

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

  • Trả về một số mà các bit của nó đã được di chuyển logic sang phải bởi một chuyển đổi nhất định.

Chức Năng

arshift

Trả về số x chuyển sang phải disp bit.Số disp có thể là bất kỳ số nguyên có thể đại diện.Di chuyển tiêu cực chuyển sang bên trái.

Hoạt động chuyển đổi này được gọi là chuyển đổi arithmetic.Các bit trống ở bên trái được lấp đầy bằng các bản sao của bit cao hơn của x ; các bit trống ở bên phải được lấp đầy bằng số 0.Cụ thể, di chuyển với giá trị tuyệt đối cao hơn 31 dẫn đến không có hoặc 0xFFFFFFFF (tất cả các bit gốc được di chuyển ra ngoài).

Tham Số

Số mà các bit sẽ được di chuyển.

disp: number

Số nguyên tử của bit để chuyển sang.

Lợi Nhuận

band

Trả về AND bitwise của tất cả các số được cung cấp.

Mỗi bit được kiểm tra chống lại bảng sự thật sau:


<th>B</th>
<th>Thành phẩm</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

Tham Số

numbers: Tuple

Lợi Nhuận

bnot

Trả về sự phủ nhận bitwise của x .

Negation of a provided number

Đối với bất kỳ số tự nhiên x, danh tính sau đây giữ:


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

Tham Số

Lợi Nhuận

Trả về OR bitwise của tất cả các số được cung cấp.

Mỗi bit được kiểm tra chống lại bảng sự thật sau:


<th>B</th>
<th>Thành phẩm</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

Tham Số

numbers: Tuple

Lợi Nhuận

btest

Trả về một tín hiệu boolean xem liệu bitwise của các tham số có khác với không.

Tham Số

numbers: Tuple

Lợi Nhuận

bxor

Trả về XOR bitwise của tất cả các số được cung cấp.

Mỗi bit được kiểm tra chống lại bảng sự thật sau:


<th>B</th>
<th>Thành phẩm</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

Tham Số

numbers: Tuple

Lợi Nhuận

byteswap

Trả về số được cho với thứ tự của các bayt đã đổi.

Tham Số

Lợi Nhuận

countlz

Trả về số lượng bit liên tục không có trong đại diện 32 bit của số cung cấp bắt đầu từ bit lớn nhất (quan trọng nhất).Trả về 32 nếu số cung cấp là không.

Tham Số

Lợi Nhuận

countrz

Trả về số lượng bit liên tục không có trong đại diện 32 bit của số cung cấp bắt đầu từ bit có ý nghĩa nhất (ít nhất) bên phải.Trả về 32 nếu số cung cấp là không.

Tham Số

Lợi Nhuận

extract

Trả về số không có dấu được hình thành bởi các bit field đến field + width - 1 từ n .Bit được đếm từ 0 (ít có ý nghĩa nhất) đến 31 (có ý nghĩa nhất).Tất cả các bit truy cập phải nằm trong phạm vi [0, 31].Mặc định cho width là 1.

Tham Số

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

Lợi Nhuận

replace

Trả về một bản sao của với các bit được thay thế bằng giá trị .Xem bit32.extract() để có chi tiết về fieldwidth.

Tham Số

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

Lợi Nhuận

lrotate

Trả về số x xoay disp bit sang bên trái.Số disp có thể là bất kỳ số nguyên có thể đại diện.Đối với bất kỳ di chuyển hợp lệ nào, danh tính sau đây giữ:


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

Cụ thể, di chuyển tiêu cực quay về phía bên phải.

Tham Số

disp: number

Lợi Nhuận

lshift

Trả về số x chuyển sang bên trái disp bit.Số disp có thể là bất kỳ số nguyên có thể đại diện.Di chuyển tiêu cực chuyển sang bên phải.Theo bất kỳ hướng nào, các bit trống được lấp đầy bằng không.Cụ thể, di chuyển với giá trị tuyệt đối lớn hơn 31 dẫn đến không (tất cả các bit được di chuyển ra ngoài).

Number shifted 3 to the left

Đối với sự di chuyển dương tính, sự bình đẳng sau đây được giữ:


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

Tham Số

disp: number

Lợi Nhuận

rrotate

Trả về số x xoay disp bit sang phải. Số disp có thể là bất kỳ số nguyên có thể đại diện.

Đối với bất kỳ di chuyển hợp lệ nào, danh tính sau đây giữ:


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

Cụ thể, di chuyển tiêu cực quay về phía bên trái.

Tham Số

disp: number

Lợi Nhuận

rshift

Trả về số x chuyển sang phải disp bit.Số disp có thể là bất kỳ số nguyên có thể đại diện.Di chuyển tiêu cực chuyển sang bên trái.Theo bất kỳ hướng nào, các bit trống được lấp đầy bằng không.Cụ thể, di chuyển với giá trị tuyệt đối lớn hơn 31 dẫn đến không (tất cả các bit được di chuyển ra ngoài).

Number shifted 3 to the right

Đối với sự di chuyển dương tính, sự bình đẳng sau đây được giữ:


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

Hoạt động chuyển sang này được gọi là chuyển sang logic.

Tham Số

disp: number

Lợi Nhuận