zoukankan      html  css  js  c++  java
  • python位运算

    这几天,在看C代码,要做一个imsi的decode 里面的代码都是用C写的,位运算什么的。看的有点乱。

    由于要在pc上进行解析,所以打算用python写,那么问题来了Python进行位运算要怎么玩?

    看的比较多的教程是把这方面的东西用C来写,用python调用。搜索了一些资料,其实python还是可以来为运算的,关键是尚未掌握调用技巧啊,公司加密软件折腾的!!

    原博如下http://blog.csdn.net/bestallen/article/details/51763386

    在数字面前添加0b 就可以用二进制表示十进制

    二进制          十进制

    0b1     1

    0b10     2

    0b11     3

    =======

    bin() 函数  该函数的作用是把10进制转换成二进制,是的 idle环境默认是10进制,比较坑爹的是bin()函数输出的是str类型

    如果要用bin的输出进行运算,恩 就是那么简单

    int(bin(25),2) + 4   

    ========

    转换完成之后,就是这几个为运算符了,操作方法跟C一样的。万恶的与或非~~~~!!!又让我想起来数电模电的日子,恩 那段记忆只剩下好繁琐,好难,好无聊!

    ^   XOR   两者相异,则为1  怎么一点印象都没有啊

    &  AND 与

    |   OR  或

    >>   右移

    <<   左移

    在使用位运算的时候经常会用到掩码,比如只保留高位/只保留低位的

    higmask = 0b11110000   

    lowmask = 0b00001111

    (data & higmask) >> 4  恩 括号很重要

    e.g:

    >>> higmask = 0b11110000
    >>> 73 & higmask >>4
    9
    >>> (73 & higmask) >>4
    4

    一步,两步,三步 走( ̄▽ ̄)~*
  • 相关阅读:
    linux 环境变量恢复默认值
    怎么查看Eclipse的版本信息
    掌握HDFS的Java API接口访问
    【代理】代理概念
    【DbUtils】轻量级的ORM学习
    【mysql】相关记录
    JWT(JSON Web Tokens)
    将jar包安装到本地仓库
    Spring集成rabbitmq
    spring-rabbit包的引入需要注意的事项
  • 原文地址:https://www.cnblogs.com/asreg/p/6557771.html
Copyright © 2011-2022 走看看