您当前的位置: 首页 >  Python

phymat.nico

暂无认证

  • 3浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python3的位移操作

phymat.nico 发布时间:2020-04-29 19:00:01 ,浏览量:3

因为要将js的一个签名算法移植到python上,遇到一些麻烦。

int无限宽度,不会溢出

算法中需要用到了32位int的溢出来参与运算,但是python的int是不会溢出的,达到界限后会自己转为long,所以很麻烦。

#使用-342686650:
ret = 123456789 >b来实现无符号位移,python中没有这个运算符,只能自己实现了 无符号右移>>>,就是将有符号int a和b转为无符号uint后,再进行普通右移>>运算 比如-1的有符号int就是-1,无符号int就是4294967295 我们自己实现>>>可以这样

#无符号右移
import ctypes
def unsigned_right_shitf(n,i):
    # 数字小于0,则转为32位无符号uint
    if n>> 20 一样。

链接:https://www.jianshu.com/p/24d11ab44ae6  

 

关注
打赏
1659628745
查看更多评论
0.0666s