python实现整数的二进制循环移位

yipeiwu_com6年前Python基础

题目:如何在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)

三、运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python argparse模块应用实例解析

这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argpars...

Python中Continue语句的用法的举例详解

Python中Continue语句的用法的举例详解

 Python continue语句返回while循环的开始。Continue语句拒绝在该循环的当前迭代中的其余语句执行并移动控制返回到循环的顶部(开始位置)。 continu...

Django 批量插入数据的实现方法

项目需求:浏览器中访问django后端某一条url(如:127.0.0.1:8080/get_book/),实时朝数据库中生成一千条数据并将生成的数据查询出来,并展示到前端页面 view...

python re模块的高级用法详解

python re模块的高级用法详解

总结 以上所述是小编给大家介绍的python re模块的高级用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于P...

python 实现登录网页的操作方法

有些网页需要你登录之后才可以访问,你需要提供账户和密码。 只要在发送http请求时,带上含有正常登陆的cookie就可以了。 1、首先我们要先了解cookie的工作原理。 Cookie是...