zoukankan      html  css  js  c++  java
  • python 计算异或

    
    
     1 '''********************************************************
     2     Func Name:    addZero
     3     Para:         x    :  字符串  
     4                   y    :  长度
     5     return:       x    :  处理后的字符串
     6     Desc:         将字符串修改为指定长度,不足的补0,只限于加长,不剪短
     7     Date:         20190711
     8     Auth:         yanerfree
     9 ********************************************************'''        
    10 def addZero(x, y):
    11     while True:
    12         if len(x) < y:
    13             x = '0' + x
    14         else:
    15             break
    16         
    17     return x
    
    
    
    1 '''********************************************************
     2     Func Name:    hexToInt
     3     Para:         h:16进制数  
     4     return:       datalen:  10进制数
     5     Desc:         #将 16进制数 转换为  INT
     6     Date:         20190711
     7     Auth:         yanerfree
     8 ********************************************************'''
     9 def hexToInt(h):       
    10     return int(h,16)
    11 
    12 '''********************************************************
    13     Func Name:    intToHex
    14     Para:         n    :  10进制数  
    15                   x    :  几个字节
    16     return:       16进制字符串
    17     Desc:         将 16进制数 转换成对应的16进制字符串,并根据字节长度补0,不带0x或者 x
    18     Date:         20190711
    19     Auth:         yanerfree
    20 ********************************************************'''
    21 def intToHex(n, x):
    22     num = hex(n)
    23     #print(num)
    24     num_list = num.split('0x')[1:]#num_list = num.split('0x')[1]
    25     
    26     return addZero(num_list[0].upper(), x*2)
    27         
    28 '''********************************************************
    29     Func Name:    checkValue
    30     Para:         h  :  需要做异或的16进制字符串
    31     return:       value : 异或结果               
    32     Desc:         将传入的16进制按2位(8bit) 做异或运算,前2个异或后的结果与下一个异或,一直到结束
    33     Date:         20190712
    34     Auth:         yanerfree
    35 ********************************************************'''
    36 #将2位的16进制转换成能够用户异或计算的16位数,即'6F'--> 0x6F  --> 10进制
    37 #16进制转10进制
    38 def add0x(s):
    39     return eval('0x'+s)
    40 
    41 def checkValue(h):
    42     #先取前2组,每组2个做异或运算
    43     value = add0x(h[0:2]) ^ add0x(h[2:4])#异或后是10进制数
    44     
    45     for i in range(4, len(h), 2):
    46         value = value ^ add0x(h[i:i+2])
    47         #print('异或结果--10进制:',value)
    48         #print('异或结果--16进制:',hex(value))
    49         #print('转换成16进制intToHex(value, 1):',intToHex(value, 1))
    50         #value = add0x(intToHex(value, 1))
    51         
    52     value = intToHex(value, 1)#16进制的校验值,1个字节
    53     return value.upper()
  • 相关阅读:
    Happy Pi day 试一试pi的可视化
    Happy Pi day 查看pi中数字出现的次数
    3.1阈值化操作
    3.1.3自适应阈值化
    3.1.2固定阈值化
    3.1.4双阈值法二值化操作
    3.1.1 OTSU阈值化
    memset函数
    3.6.2投影峰谷查找
    3.6.1直方图&最大熵分割
  • 原文地址:https://www.cnblogs.com/yaner2018/p/11240387.html
Copyright © 2011-2022 走看看