前言

做测试模拟器用到了hex-bytes-str之间的转换bcc码的校验,这里总结了一些方法分享给大家。

实例

直接上代码

1.转为十六进制(Hex)字符串

 def getStringFromNumber(self,size,value):"""        转为十六进制(Hex)字符串        :param size:        :param value:        :return:        """        size=int(size)        value=int(value)        by = bytearray([])for i in range(1,size+1):            val = value >> 8 * (size - i) & 255            by.append(val)        val = by.hex()print("===============================")print("%s转为%s个字节十六进制(Hex)字符串:%s"%(value,size,val))print("===============================")return valgetStringFromNumber(5,11)

执行代码:

方法:getStringFromNumber(size,value)参数一为生成几个batys,参数二为被转化数字

2.bcc校验码

    def bcc(self,value):"""            bcc 检查码        :param number:        :return:        """        numb = len(number)        nb = int(numb / 2)        bcc = 0for i in range(nb):            a = 2 * i            b = 2 * (i + 1)            aa = number[a:b]            bcc = bcc ^ int(aa, 16)print("===============================")print("生成bcc码:%s" % f'{bcc:x}')print("===============================")return f'{bcc:x}'bcc('11111111111111111111111111111111111111111111111111111111111222222222222222222222')

执行代码:

方法:bcc(value)参数被转化数字

3.时间字节数组(byte[])转为十六进制(Hex)字符串和解码时间

   def datetime(self):"""       字节数组(byte[])转为十六进制(Hex)字符串        :return:        """print("===============================")        current_time = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))        datatime = current_time[2:]        by = bytearray([])        aa = datatime.split("-")for val in aa:            by.append(int(val))        val = by.hex()print("当前%s转化十六进制:%s" % (current_time, val))return val

def time_hex_dec(self,number):"""            时间解码        :param number:        :return:        """        numb = len(number)        nb = int(numb / 2)        datatime=[]for i in range(nb):            a = 2 * i            b = 2 * (i + 1)            num = number[a:b]            datatime.append(num)        Gettime ="20"for key,val in enumerate(datatime):            b = eval("0x" + val)            Gettime += str(b)if key <5:                Gettime = Gettime +"-"print('时间解码:%s' % Gettime)print("===============================")return Gettime

time = datetime()time_hex_dec(time)

执行代码:

方法:time (value)参数被转化数字 time_hex_dec(time)解码时间

4.字符串转16进制 与 16进制转字符串

 def str_to_hex(self,data):"""        # 字符串转16进制        :param data:        :return:        """print("===============================")        str_16 = binascii.b2a_hex(data.encode('utf-8'))print("字符串%s转16进制:%s"%(data,str_16))return str_16

def hex_to_str(self,data):"""        # 16进制转字符串        :param data:        :return:        """        strs = (binascii.unhexlify(data)).decode()print("16进制%s转字符串:%s"%(data,strs))print("===============================")return strsdata = str_to_hex("wencheng你好")hex_to_str(data)

执行代码:

方法:str_to_hex(value) ,hex_to_str(data)

5.字符串转字节 str --> bytes与字节转字符串 bytes --> str

 def str_to_bytes(self,b):"""             字符串转字节  str --> bytes        :param b:        :return:        """print("===============================")print(str.encode(b))  # 默认 encoding="utf-8"print(bytes(b, encoding="utf8"))print(b.encode())  # 默认 encoding="utf-8"return str.encode(b)

def bytes_to_str(self,a):"""        字节转字符串 bytes  --> str        :param b:        :return:        """print(bytes.decode(a))  # 默认encoding="utf-8"print(str(a, encoding="utf-8"))print(a.decode())  # 默认 encoding="utf-8"print("===============================")data = str_to_bytes("wencheng你好")bytes_to_str(data)

执行代码:

方法:str_to_bytes(value) ,bytes_to_str(data)

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。

更多文章关注小编公众号:自动化测试 To share

java byte转十六进制_Python 十六进制hexbytesstr之间的转换和Bcc码的生成相关推荐

  1. 16进制 转为图片 php_Python 十六进制hex-bytes-str之间的转换和Bcc码的生成

    前言 近期做测试模拟器用到了hex-bytes-str之间的转换bcc码的校验,这里总结了一些方法. 实例 直接上代码 转为十六进制(Hex)字符串 def 执行代码: 方法:getStringFro ...

  2. java byte数组string_byte数组和String之间的转化

    JAVA里面关于byte数组和String之间的转换问题 把byte转化成string,必须经过编码. 例如下面一个例子: import java.io.UnsupportedEncodingExce ...

  3. java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  4. Java之Base64实现文件和字符串之间的转换

    摘要:Java通过Base64加密解密实现文件和字符串之间的转换! Base64.java package com.qdexam.util;import java.io.FileInputStream ...

  5. python变量类型之间转换_Python常用数据类型之间的转换总结

    函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) ...

  6. java url换成流_JAVA数据流之间的转换

    InputStream.read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中. OutputStream.write(byte[] b) 将 b.length 个 ...

  7. python二进制反码例题_python中的进制转换和原码,反码,补码

    python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...

  8. JavaSE笔记(09) —— 进制之间的转换以及原码,反码,补码的讲解

    进制的介绍 对于整数,有四种表示方式: 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头: 十进制:0-9 ,满 10 进 1: 八进制:0-7 ,满 8 进 1. 以数字 0 开头表示: ...

  9. 【原创】十六进制数值与字符串之间的转换(原封不动的转换)

    方法1:利用mfc或其他开发工具的宽字符串格式转Format() //十六进制数字原封不动的转字符串 DWORD dTest = 0x036C9B38; CString sTest; sTest.Fo ...

  10. 数据结构+java基础(1)+进制之间的转换

    数据结构分类:         逻辑结构分类: 1.集合结构:集合结构中数据元素除了属于同一个集合外,他们之间没有任何其他的关系. 2.线性结构:线性结构中的数据元素之间存在一对一的关系. 3.树形结 ...

最新文章

  1. Grunt插件之LiveReload 实现页面自动刷新,所见即所得编辑
  2. hdu 3117 Fibonacci Numbers
  3. 1.Eclipse创建普通java工程
  4. 有关 php __autoload 自动加载类函数的用法
  5. TIOBE 3 月编程语言:Swift 一路低走,Java 份额大跌
  6. html meta标签
  7. cad没有命令输入框_cad中怎么输入文字?cad怎么输入文字?
  8. STM32-STVP烧录
  9. 10分钟教你用scratch做一款小游戏,玩游戏不如自己做游戏
  10. Windows10安装报错 由于存在受损的安装文件
  11. Apache Rewrite 详解 RewriteBase
  12. Vmware安装CensOS6.4
  13. 【BZOJ1135】[POI2009]Lyz 线段树
  14. 女生适合干【长期第一线编程工作】 男生能干的女生照样可以做的更好
  15. 小白对于linux的命令的一些基础认识
  16. Robeco:使用机器学习发现被错误定价的股票
  17. (附源码)Spring Boot 框架整合 OAuth2 实现单点登录 SSO 详细完整源码教程!
  18. 4.1 -Springboot 编写http接口
  19. 用GraphPad Prism直出单细胞亚群堆叠柱状图
  20. 视唱练耳小课堂——音程 (上)

热门文章

  1. jsp页面输出excel文件乱码解决方案
  2. 秘笈——掌控时间管理的工具
  3. 学以致用------韩顺平老师说(如果不能学以致用,那就是白费。等于没学。贪多嚼不烂。)---无内容...
  4. forms Build中的触发器
  5. 8.企业安全建设入门(基于开源软件打造企业网络安全) --- 态势感知系统建设
  6. 31.Linux/Unix 系统编程手册(上) -- 线程:线程安全和每线程存储
  7. 2.Zabbix企业级分布式监控系统 --- Zabbix 简介
  8. 52. yii create webapp
  9. centos java进程号_centos中分析java占用大量CPU资源的原因
  10. Mybatis中的resultType和resultMap