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

โปรแกรม Python กลับบิตของจำนวนเต็มบวก

แปลงตัวเลขเป็นไบนารีด้วยฟังก์ชัน bin() แล้วข้ามสองตัวอักษรแรกเพราะ bin() เติม 0b เป็นคำนำหน้า แล้วกลับส่วนที่เหลือ จากตัวอักษรสุดท้ายกลับไปจนถึงตัวอักษรที่สองจากซ้าย แปลงสตริงไบนารีที่กลับแล้วเป็นจำนวนเต็ม

อัลกอริทึม

integernumber(n,bit_size) /* n คือตัวเลข bit_size คือขนาดบิต */
ขั้นตอนที่ 1: แปลงตัวเลขเป็นไบนารี
ขั้นตอนที่ 2: ข้ามสองตัวอักษรแรกของสตริงไบนารีและกลับ
ขั้นตอนที่ 3: สตริงที่เหลือแล้วต่อ 0 ไปด้านหลัง
ขั้นตอนที่ 4: จากตัวอักษรสุดท้ายกลับไปจนถึงตัวอักษรที่สองจากซ้าย
ขั้นตอนที่ 5: แปลงสตริงไบนารีที่กลับแล้วเป็นจำนวนเต็ม

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

# โปรแกรม Python กลับบิตของจำนวนเต็มบวก
def integernumber(n, bit_size):
    bin_number = bin(n)
    reverse_number = bin_number[-1:1:-1]
    reverse_number = reverse_number + (bit_size - len(reverse_number)) * '0'
    print("บิตที่กลับแล้ว ::>", int(reverse_number, 2))

# โปรแกรมหลัก
if __name__ == "__main__":
    n = int(input("ป้อนตัวเลข ::>"))
    bit_size = int(input("ป้อนขนาดบิต ::>"))
    integernumber(n, bit_size)

ผลลัพธ์

ป้อนตัวเลข ::>1
ป้อนขนาดบิต ::>32
บิตที่กลับแล้ว ::> 2147483648
ป้อนตัวเลข ::>2147483648
ป้อนขนาดบิต ::>32
บิตที่กลับแล้ว ::> 1