基于Python设计的CRC-16 校验码计算器
基于Python设计的CRC-16 校验码计算器,CRC16离线计算器。
缘由:某日在做测试时,发现某位网友的CRC计算器无法正常使用了,哇,怎么回事?经过排查,感情他那工具是需要调用网络接口的,实际是个网页在线CRC计算器。不巧的是本人电脑刚搬迁过来,网络未通,网线还没有,遂,自己动手搓一个。于是诞生了这个。
本人不保证该作品没有bug,也没有经过严谨的测试验证,在任何情况下,无论因何种原因,本人均不承担因使用本程序或者代码所造成的任何直接、间接、特别、附带或间接损失的赔偿责任。
一、使用说明
仓库地址:Gitee
下载地址:发布
URL :https://gitee.com/zerone_space/crc16_calculator
下载: https://gitee.com/zerone_space/crc16_calculator/releases/tag/v1.0.1-beta
二、源码使用[only for programmer]
1、安装python
Python 安装
2、测试、运行
git clone https://gitee.com/zerone_space/crc16_calculator
cd crc16_calculator python CRC16_Calculator.py
4、打包
4.1、安装虚拟环境
pip install pipenv
Tips:首次使用需要 pipenv 安装
4.2、进入虚拟环境
pipenv shell
4.3、在虚拟环境中安装 pyinstaller 打包工具
pip install pyinstaller -i https://pypi.doubanio.com/simple --trusted-host pypi.doubanio.com
Tips:每次重新打包都需要安装
4.4、在虚拟环境中使用pyinstaller打包成可执行文件(.exe)
pyinstaller -F -w -i logo.ico ./src/CRC16_Calculator.py
4.5、完成打包,退出虚拟环境,再删除虚拟环境
exit pipenv --rm
Tips:不删除虚拟环境也是可以的,这样下次重新打包,
则不需要重新安装 pyinstaller
附录
from tkinter import * from tkinter import messagebox #font_str = "Times New Roman" font_str = "阿里巴巴普惠体" #font_str = "Source Han Sans CN" # 按位(bit)反转, def reverse(din,len_din): din_bin=bin(din) din_bin_str=str(din_bin) dout_bin_str='' for i in range(len_din): if (i > 1 crc16 = crc16^poly else: crc16 = crc16 >> 1 if (refout == 0): result = hex(reverse(crc16,16)) else: result = hex(crc16) if highfirst == 0: result = hex(exchange(result)) binstr = '{:016b}'.format(int(result,16)) self.resbin.set(str(binstr)) result = result[2:] self.result.set('0x'+str(result).upper()) print('Hex_Res:' + '0x'+result.upper()) print('Bin_Res:' + binstr) def textfmt(self): plaintext = self.entry01.get() print(plaintext) import re plaintext = re.sub(r'[^0-9a-fA-F]','',plaintext) result = ' '.join(plaintext[i:i+2] for i in range(0, len(plaintext), 2)) self.hexstr.set(result) if __name__ == '__main__': root = Tk() sw = root.winfo_screenwidth() sh = root.winfo_screenheight() w = 600 h = 220 x = (sw-w)/2 y = (sh-h)/2 root.geometry("%dx%d+%d+%d" %(w,h,x,y)) root.title('CRC-16 离线计算工具') root.resizable(0,0) #root.iconbitmap('../logo.ico') Application(master=root) root.mainloop()
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。