支持有符号数的进制转换器,可以在10进制数、16进制数、2进制数之间相互转换。亮点:16进制数/2进制数可转换为有符号数整型。

基于Python设计的进制转换器,可以在10进制数、16进制数、2进制数之间相互转换。亮点:16进制数/2进制数可转换为有符号数整型。

缘由:某日在解码下位机传回来的数据时,发现找到的进制转换工具都是将16进制数当成无符号数转换的10进制,找不到有符号数的转换工具,遂,自己动手搓一个。于是诞生了这个。

本人不保证该作品没有bug,也没有经过严谨的测试验证,在任何情况下,无论因何种原因,本人均不承担因使用本程序或者代码所造成的任何直接、间接、特别、附带或间接损失的赔偿责任。

一、使用说明

  1. 双击 “Base_Conversion.exe” ,运行程序,会弹出程序窗口。
  2. 按照你的需求填写数据,点击计算即可显示结果。亮点:16进制数/2进制数可转换为有符号数整型。
  3. 程序界面如下:

程序界面

Gitee仓库地址: 进制转换器源码
发布链接: 下载链接

URL:https://gitee.com/zerone_space/BaseConv
下载: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/BaseConv.git
cd BaseConv

3、测试、运行

python Base_Conversion.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/Base_Conversion.py
4.5、完成打包,退出虚拟环境,再删除虚拟环境
exit
pipenv --rm

Tips:不删除虚拟环境也是可以的,这样下次重新打包,
则不需要重新安装 pyinstaller

附录

from tkinter import *
from tkinter import messagebox
from tkinter.ttk import Combobox
import re

#font_str = "Times New Roman"
font_str = "阿里巴巴普惠体"
#font_str = "Source Han Sans CN"

def hexfmt(str):
    str = re.sub(r'[^0-9a-fA-F]','',str)# 16进制数正则
    if len(str)==0:
        str='0'
    print('HEX: '+str)
    return str
def decfmt(str):
    str = re.sub(r'[^-?\d+$]','',str)# 十进制数正则
    if len(str)==0:
        str="00"
    print('DEC: '+str)
    return str
def binfmt(str):
    str = re.sub(r'[^0-1]','',str)# 二进制数正则
    if len(str)==0:
        str='00000000'
    print('BIN: '+str)
    return str

def sdec2int(intstr,signed):
    #str = str.strip("-")
    if signed== 1:
        if intstr >=0:
            if intstr < 128:
                binstr = '{:08b}'.format(intstr)
            elif intstr < 32768:
                binstr = '{:016b}'.format(intstr)
            elif intstr < 2147483648:
                binstr = '{:032b}'.format(intstr)
            else:
                binstr = '{:064b}'.format(intstr)
        else:   
            #print (intstr)
            str_num = hex(intstr).strip("-")
            #print (str_num)
            abs = int(str_num,16)
            if -128 <= intstr:
                binstr = '{:08b}'.format(abs)
            elif -32768 <= intstr:
                binstr = '{:016b}'.format(abs)
            elif -2147483648 <= intstr:
                binstr = '{:032b}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值