1. 程式人生 > >如何在python中實現整數的二進位制迴圈移位(附程式碼)

如何在python中實現整數的二進位制迴圈移位(附程式碼)

【時間】2018.11.03

【題目】如何在python中實現整數的二進位制迴圈移位(附程式碼)

概述

在python中,可以通過<<以及>>運算子實現二進位制的左移位以及右移位,然而並沒有實現迴圈移位的運算子,暫時也找不到可以實現迴圈移位的函式,所以在本文中,主要介紹瞭如何使用字元的切片運算實現迴圈位移。

 

一、實現思路

1。利用字串的format函式將int整數值轉化為特定位數的二進位制值

2、利用字元的切片操作實現迴圈位移

二、實現程式碼

# left circular shift

#int_value是輸入的整數,k是位移的位數,bit是整數對應二進位制的位數

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,"右迴圈位移1位的結果是",B)

    C = 128

    D =circular_shift_left(C,1,8)

    print(C, "左迴圈位移1位的結果是", D)

三、執行結果