Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python ดึง k บิตจากตำแหน่งที่กำหนด

ฟังก์ชันนี้ใช้ดึง k บิตจากตำแหน่ง pos และคืนค่าที่ดึงได้ ใช้เทคนิค slicing ของ Python

ตัวอย่าง

Input:: number=170 K=5 Pos=2
Output=21

อัลกอริทึม

Extractionbit(no,k,pos) /*ตัวเลขอินพุทเก็บใน no, บิตที่ดึงเก็บใน k, ตำแหน่งบิตคือ pos */
ขั้นตอนที่ 1: แปลงตัวเลขเป็นไบนารีด้วย bin()
ขั้นตอนที่ 2: ลบสองตัวอักษรแรก
ขั้นตอนที่ 3: ดึง k บิตจากตำแหน่ง pos จากขวา ดังนั้นดัชนีสิ้นสุดของ substring ที่ดึงคือ e=len(bi)-pos และดัชนีเริ่มต้น=e-k+1
ขั้นตอนที่ 4: ดึง k บิต substring
ขั้นตอนที่ 5: แปลง substring ที่ดึงได้เป็นทศนิยมอีกครั้ง

โค้ดตัวอย่าง

# โปรแกรม Python ดึง 'k' บิตจากตำแหน่งที่กำหนดในตัวเลข
def extractedbits(no, k, pos):
    bi = bin(no)
    bi = bi[2:]
    e = len(bi) - pos
    s = e - k + 1
    substr = bi[s : e+1]
    print("ผลลัพธ์สุดท้าย ::>", int(substr, 2))

# โปรแกรมหลัก
if __name__ == "__main__":
    no = int(input("ป้อนตัวเลข ::>"))
    k = int(input("ป้อน k บิต ::>"))
    pos = int(input("ป้อนตำแหน่ง ::>"))
    extractedbits(no, k, pos)

ผลลัพธ์

ป้อนตัวเลข ::>170
ป้อน k บิต ::>5
ป้อนตำแหน่ง ::>2
ผลลัพธ์สุดท้าย ::>21