Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python trích xuất k bit từ vị trí cho trước

Hàm này dùng để trích xuất k bit từ vị trí pos và trả về giá trị trích xuất. Ở đây ta dùng kỹ thuật slicing (cắt lát) của Python.

Ví dụ

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

Thuật toán

 Extractionbit(no,k,pos) /* số nhập lưu trong no, bit trích xuất lưu trong k, vị trí bit là pos */ Bước 1: Chuyển số sang nhị phân bằng bin(). Bước 2: Bỏ hai ký tự đầu. Bước 3: Trích xuất k bit từ vị trí pos từ phải. Chỉ mục kết thúc e = len(bi) - pos và chỉ mục bắt đầu = e - k + 1. Bước 4: Trích xuất chuỗi con k bit. Bước 5: Chuyển chuỗi con trích xuất sang thập phân. 

Mã ví dụ

 # Chương trình Python trích xuất 'k' bit từ vị trí cho trước trong số 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 ("KẾT QUẢ CUỐI CÙNG ::>", int(substr, 2)) # Chương trình chính if __name__ == "__main__": no = int(input("Nhập số ::>")) k = int(input("Nhập k bit ::>")) pos = int(input("Nhập vị trí ::>")) extractedbits(no, k, pos) 

Kết quả

 Nhập số ::>170 Nhập k bit ::>5 Nhập vị trí ::>2 KẾT QUẢ CUỐI CÙNG ::>21