您好,登錄后才能下訂單哦!
題目:如何在python中實現(xiàn)整數(shù)的二進(jìn)制循環(huán)移位?
概述
在python中,可以通過<<以及>>運算符實現(xiàn)二進(jìn)制的左移位以及右移位,然而并沒有實現(xiàn)循環(huán)移位的運算符,暫時也找不到可以實現(xiàn)循環(huán)移位的函數(shù),所以在本文中,主要介紹了如何使用字符的切片運算實現(xiàn)循環(huán)位移。
一、實現(xiàn)思路
1、利用字符串的format函數(shù)將int整數(shù)值轉(zhuǎn)化為特定位數(shù)的二進(jìn)制值
2、利用字符的切片操作實現(xiàn)循環(huán)位移
二、實現(xiàn)代碼
# left circular shift #int_value是輸入的整數(shù),k是位移的位數(shù),bit是整數(shù)對應(yīng)二進(jìn)制的位數(shù) def circular_shift_left (int_value,k,bit = 8): bit_string = '{:0%db}' % bit bin_value = bit_string.format(int_value) # 8 bit binary bin_value = bin_value[k:] + bin_value[:k] int_value = int(bin_value,2) return int_value # right circular shift def circular_shift_right (int_value,k,bit = 8): bit_string = '{:0%db}' % bit bin_value = bit_string.format(int_value) # 8 bit binary bin_value = bin_value[-k:] + bin_value[:-k] int_value = int(bin_value,2) return int_value if __name__ == "__main__": A=1 B=circular_shift_right(A, 1, 8) print(A,"右循環(huán)位移1位的結(jié)果是",B) C = 128 D =circular_shift_left(C,1,8) print(C, "左循環(huán)位移1位的結(jié)果是", D)
三、運行結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。