bit32

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ห้องสมุดนี้ให้ฟังก์ชันที่จะประมวลผลการดำเนินการแบบข้างเดียว

ข้อจํากัดจํานวน

ห้องสมุดนี้จัดการตัวเลขเป็นตัวเลข 32 บิทที่ไม่มีชื่อ; ตัวเลขจะถูกแปลงเป็นตัวเลขที่ใกล้ที่สุดก่อนที่จะใช้ (ดูภาพด้านล่าง) ตัวเลขที่มีตัวเลขทศนะจะถูกรอบเป็นตัวเลขที่ใกล้ที่สุด

32-bit integer conversion (in hexadecimal)

สรุป

ฟังก์ชัน

  • กลับตัวเลขหลังจากที่บิทของมันถูกเรียงลำดับไปยังด้านขวาโดยการเลียนแบบที่กำหนด

  • band(numbers : Tuple):number

    กลับ bitwise และของหมายเลขทั้งหมดที่ให้

  • กลับ bitwise negation ของหมายเลขที่ให้

  • bor(numbers : Tuple):number

    กลับ bitwise หรือของตัวเลขทั้งหมดที่ให้

  • btest(numbers : Tuple):bool

    กลับมาเป็นตัวเลือกที่แสดงว่า bitwise และ operands ของมันแตกต่างกับ zero

  • bxor(numbers : Tuple):number

    กลับ bitwise XOR ของตัวเลขทั้งหมดที่ให้

  • กลับจำนวนเลขที่กำหนดด้วยคำสั่งของบาทส์ที่แลกเปลี่ยน

  • กลับจำนวนบาทสมุทรของตัวเลขที่เรียกตัวเองว่า บาทสมุทรของตัวเลข ซึ่งเริ่มตั้งแต่ bit ที่มีค่าที่สุดซ้าย (bit ที่มีค่ามากที่สุด)

  • กลับจำนวนบาทสมุทรของตัวเลขที่ตรงกันในการแสดงผล 32 บาทสมุทรของตัวเลขที่เริ่มตั้งแต่บาทสมุทรขวา (น้อยที่สุด)

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

    สกัดชุดตัวอักษรจากตัวเลขและส่งกลับเป็นตัวเลขที่ไม่มีชื่อ

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

    กลับคัดลอกของตัวเลขที่มีช่วงตัวอักษรแทนที่โดยค่าที่กำหนด

  • กลับค่าเป็นตัวเลขหลังจากที่บิทของมันถูกหมุนไปทางซ้ายโดยจำนวนเวลาที่กำหนด

  • กลับจำนวนที่มีบิทถูกเลื่อนไปทางซ้ายโดยการเลื่อนที่กำหนด

  • กลับค่าหลังจากที่บิทของมันถูกหมุนไปทางด้านขวาโดยจำนวนเวลาที่กำหนด

  • กลับจำนวนที่มีบิทถูกเลื่อนไปขวาโดยการเลื่อนที่กำหนด

ฟังก์ชัน

arshift

กลับจํานวน x ที่เพิ่มขึ้น disp บิทไปทางด้านขวา จํานวน disp อาจเป็นตัวเลขที่แทนที่ได้ การเคลื่อนที่ลบจะเปลี่ยนไปทางซ้าย

การเปลี่ยนแปลงนี้เรียกว่าการเปลี่ยนแปลงทางคณิตศาสตร์ ส่วนบิทที่ว่างอยู่ทางซ้ายจะเต็มด้วยคัดลอกของบิทสูงสุดของ x ส่วนส่วนที่ว่างอยู่ทางขวาจะเต็ม

พารามิเตอร์

ตัวเลขที่บิทของมันจะถูกเปลี่ยน

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>
ออก
Bitwise AND of 3 numbers

พารามิเตอร์

numbers: Tuple

ส่งค่ากลับ

bnot

กลับค่าการปฏิเสธของ bitwise ของ 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>
ออก
Bitwise OR of 3 numbers

พารามิเตอร์

numbers: Tuple

ส่งค่ากลับ

btest

กลับสัญลักษณ์บูลีนว่า bitwise และ ขององค์ประกอบของมันแตกต่างจาก zero

พารามิเตอร์

numbers: Tuple

ส่งค่ากลับ

bxor

กลับ bitwise 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>
ออก
Bitwise XOR of 3 numbers

พารามิเตอร์

numbers: Tuple

ส่งค่ากลับ

byteswap

กลับจำนวนเลขที่กำหนดด้วยคำสั่งของบาทส์ที่แลกเปลี่ยน

พารามิเตอร์

ส่งค่ากลับ

countlz

กลับจำนวนบาทสมุทรของตัวอักษร 32 บาท (ตัวอักษรที่มีขนาดใหญ่ที่สุด) เริ่มจากบาทสมุทรซ้ายสุด (ตัวอักษรที่มีขนาดใหญ่ที่สุด) กลับจำนวน 32 หากบาทสมุทรเป็นตัวอักษร

พารามิเตอร์

ส่งค่ากลับ

countrz

กลับจำนวนบาทสมุทรของตัวอักษร 32 บาทที่เริ่มตั้งแต่ตัวอักษรที่สามารถแปลงเป็นตัวเลขได้ กลับจำนวนบาทสมุทรของตัวอักษรที่เริ่มตั้งแต่ตัวอักษรที่สามารถแปลงเป็นตัวเลขได้

พารามิเตอร์

ส่งค่ากลับ

extract

กลับตัวเลขที่ไม่ได้ลงชื่อโดย bit field เป็น field + width - 1 จาก n บิท บิทจะเรียงลำดับตั้งแต่ 0 (น้อยที่สุด) ไปยัง 31 (ม

พารามิเตอร์

field: number
width: number
ค่าเริ่มต้น: 1

ส่งค่ากลับ

replace

กลับคัดคุณสมบัติของ n ด้วยบิท field ไปยัง field + width - 1 ที่แทนที่โดยมูลค่า 1> v1> ดู 4> Library.bit32. extract</

พารามิเตอร์

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 อาจเป็นตัวเลขที่เป็นไปได้ทั้งหมด การเคลื่อนที่เชิญเสียบวก

Number shifted 3 to the left

สำหรับการเคลื่อนย้ายที่เป็นบวก ค่าตัวอย่างต่อไปนี้จะใช้:


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

พารามิเตอร์

disp: number

ส่งค่ากลับ

rrotate

กลับค่านี้ x หมุน disp บิทไปทางขวา ตัวเลข disp อาจเป็นตัวเลขใดก็ได้ที่สามารถแทนที่ได้

สำหรับการเคลื่อนย้ายที่ถูกต้องตามที่ติดตั้งตราสัญลักษณ์ต่อไปนี้จะรวมถึง:


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

โดยเฉพาะอย่างยิ่งการเคลื่อนไหวลบค้างไปทางซ้าย

พารามิเตอร์

disp: number

ส่งค่ากลับ

rshift

กลับจํานวน x ที่เพิ่มขึ้น disp บิทไปทางขวา จํานวน disp อาจเป็นจํานวนที่แทนที่ได้ การเลียนแบบจํานวนลบจะเปลี่ยนเป็น

Number shifted 3 to the right

สำหรับการเคลื่อนย้ายที่เป็นบวก ค่าตัวอย่างต่อไปนี้จะใช้:


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

การเปลี่ยนแปลงนี้เรียกว่าการเปลี่ยนแปลงทางละคร

พารามิเตอร์

disp: number

ส่งค่ากลับ