1.在使用python进行移位操作的时候发现python进行移位操作后的数值与其他语言不一样(java,php,javascript),然后google了下  看到了这篇帖子http://www.cnblogs.com/zhengyun_ustc/archive/2009/10/14/shifting.html,然后又看了看python移位操作与php语言移位操作的原理,python是被移位数乘以2的移位数目的次方

例,

1000<<1 = 1000*pow(2,1) = 2000

2,php进行<

<

语法格式:

需要移位的数字 << 移位的次数

例如: 3 << 2,则是将数字3左移2位

计算过程:

3 << 2

首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.数学意义:

在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

3.为什么python进行<

例,

python1000<<25 = 33554432000L

php1000 << 25 = -805306368

为什么会有不同的结果,

原来是因为python是int类型是无精度类型,不会发生溢出而进行截取的情况,php在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移 动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就 是移动66次和移动2次得到的结果相同。

4,让python实现和php一样移位运算结果

一,十进制转二进制然后进行移位操作

defshifting(string_num):

base= [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)]

num=int(string_num)

mid=[]whileTrue:if num == 0: breaknum,rem= divmod(num, 2)

mid.append(base[rem])

temp= ''.join([str(x) for x in mid[::-1]])

s1= temp.zfill(32)

s2= s1[5:]+"0"*5s3=bin2dec(s2)return s3

二,二进制转十进制

defbin2dec(string_num):return str(int(string_num, 2))

python左移位运算_python移位操作困惑相关推荐

  1. python左移位运算_python移位运算符

    1,二进制方式 >>> bin( 1)'0b1' >>> bin( 10)'0b1010' >>> a =0b10>>>a2 & ...

  2. python左移位运算_python 移位运算符只能用于整型吗

    匿名用户 1级 2016-12-29 回答 什么是操作符? 简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符. Python语言支持操作者有以下几种类型. 算术运算符 ...

  3. python字符位运算_python 字符串位运算-女性时尚流行美容健康娱乐mv-ida网

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页  > 高级搜索 [ python ] pyth ...

  4. python取模运算_python取模操作

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文最先发布在:https:www.itcoder.techpostspytho ...

  5. python左移右移位运算_Python这些位运算的妙用,绝对让你大开眼界

    位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中,在手 ...

  6. python整数逆位运算_Python这些位运算的妙用,绝对让你大开眼界

    位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中,在手 ...

  7. python 整数逆位运算_python训练营:注释、运算符、数据类型与位运算

    天学习的内容整理成脑图如下,其中带☆的是需要重点掌握的模糊知识点,需要加强训练和记忆. 二.具体学习内容 2.1 注释 2.1.1 多行注释 2.1.2 长字符串注释 2.2 运算符 2.2.1 算术 ...

  8. python与或非位运算_python位运算

    什么是位运算 位运算就是把数字当成二进制来进行计算,位运算有六种:&(与), |(或), ^(异或), ~(非), <>(右移) &(与) &运算规则:两个位都为1 ...

  9. python 整数逆位运算_Python 进制转换、位运算

    一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...

最新文章

  1. Linux下Tomcat的启动、关闭
  2. 配置EIGRP默认路由
  3. Python基础教程:赋值、深拷贝与浅拷贝(内存地址)
  4. mysql denide_MYSQL 出现Error1045 access denied 的解决方法
  5. 想当老板的人,三点特征很重要(转)
  6. 从学校到职场的路有多远
  7. sp_getapplock_sp_getapplock和sp_releaseapplock存储过程概述
  8. cmd mysql出现乱码怎么解决方法_cmd如何解决mysql乱码
  9. 4.C++深入理解 面向对象部分3
  10. c traps and pitfalls reading notes(2)
  11. matlab画圆函数
  12. postman前置脚本密码MD5加密以及转大写
  13. 【现代密码学】大作业-RSA大礼包
  14. 说白了那就是在一个池里放些亲亲鱼
  15. Python 如何将视频文件的语音转换为文字,良心之作!
  16. Python 基于modbus tcp 协议 实现与plc通信
  17. 在Excel中使用翻译公式 (有道API)
  18. java 三点_[Java教程]三点运算符使用方法
  19. 时间机器能成为现实么?
  20. 将自己的网站上传至服务器并通过域名进行访问

热门文章

  1. 双系统 Win10 Ubuntu 启动项修复
  2. 用matlab处理数字高程模型(DEM)之点云数据(point cloud data)
  3. PPTP 理解以及报文的分析
  4. 【chrome devtools】前端性能分析之chrome devtools的使用 前端项目内存性能优化的建议 前端浏览器崩溃卡死 前端性能分析实战
  5. 技巧:win10的另一种美化字体的方式,使用noMeiryoUI
  6. 抽象类和接口-形状抽象类
  7. 联想V480关闭UEFI安装Win7
  8. 常见电脑故障维修-硬盘篇
  9. python将图片分割成4分代码
  10. Java 第四周学习周报