Python: HexBinDecOct

因为:

    f=0b1001110# 十进制 int()a=0*2**0+1*2**1+1*2**2+1*2**3+0*2**4+0*2**5+1*2**6print(a)# 八进制 oct()print(78/8,78%8)# 110 001 001  8 116print(1*2**0+0*2**1+0*2**2,1*2**0+0*2**1+0*2**2,0*2**0+1*2**1+1*2**2)#十六进制 hex()#0 100 1110 16 4Eprint(sixteenFoo(0*2**0+0*2**1+1*2**2),sixteenFoo(0*2**0+1*2**1+1*2**2+1*2**3))

所以:

# encoding: utf-8
# 版权所有 2024 涂聚文有限公司
# 许可信息查看:
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# Datetime  : 2024/6/22 20:01
# User      : geovindu
# Product   : PyCharm
# Project   : pyBaiduAi
# File      : BinaryConvert.py
# explain   : 学习
import sys
import os
import ioclass BinaryConvert(object):"""进制转换"""def __init__(self):"""实例化"""self.numstr=''@staticmethoddef hexFoo(k: int) -> str:"""整数十六進制:param k::return:"""# hexStr=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']hexStr = '0123456789ABCDEF'return hexStr[k]@staticmethoddef hexFoo2(k: int) -> str:"""整数转十六進制:param k: 整数:return:"""fstr = ''if k == 10:fstr = "A"elif k == 11:fstr = "B"elif k == 12:fstr = "C"elif k == 13:fstr = "D"elif k == 14:fstr = "E"elif k == 15:fstr = "F"else:fstr = str(k)return fstr@staticmethoddef DecimalConvert(numstr) -> int:"""二进制字符串转十进制 字符串未倒过来  Octal  Decimal Binary   hexadecimal; sexadecimal:param numstr: 二进制字符 倒过来计算。从0开始索引:return:整数"""getstr = ""lenght = len(numstr)ssum=0if lenght>0:if BinaryConvert.isBinary(numstr):index=0for k in range(lenght-1,-1,-1 ):if numstr[k] == '1':ssum = ssum+1 * 2 ** indexif numstr[k] == '0':ssum = ssum+ 0index+=1return ssum@staticmethoddef OctalConvert(numstr:str) -> str:"""二进制字符串转八进制   字符串未倒过来:param numstr:二进制字符:return:"""length=len(numstr)eight = ""if length>0:cc=0if BinaryConvert.isBinary(numstr):for k in range(length, -1, -3):if k >= 3:#print(k, DecimalCovert(numstr[k - 3:k]))eight = eight + str(BinaryConvert.DecimalConvert(numstr[k - 3:k]))if 0<k < 3:#print(DecimalCovert(numstr[:k]))eight = eight + str(BinaryConvert.DecimalConvert(numstr[:k]))cc+=1return eight[::-1]@staticmethoddef HexadecimalConvert(numstr:str) -> str:"""二进制字符串转十六进制 字符串未倒过来:param numstr:进制字符串:return:"""sixtee = ""length = len(numstr)cc = 0if length>0:if BinaryConvert.isBinary(numstr):for k in range(length, -1, -4):  # 1 次处理一位# print(k, sixteenFoo(threeCovert(numstr[k - 4:k])))if k >= 4:sixtee = sixtee + BinaryConvert.hexFoo(BinaryConvert.DecimalConvert(numstr[k - 4:k]))if 0<k < 4:#print(hexFoo(DecimalConvert(numstr[:k])))sixtee = sixtee + BinaryConvert.hexFoo(BinaryConvert.DecimalConvert(numstr[:k]))cc += 1return sixtee[::-1]@staticmethoddef ReversedConvert(numstr:str) -> int:"""二进制字符串转十进制 字符串倒过来:param numstr:  二进制字符:return: 整数"""lenght = len(numstr)ssum = 0if lenght > 0:if BinaryConvert.isBinary(numstr):for k in range(0,lenght):if numstr[k]=='1':ssum=ssum+1*2**kif numstr[k]=='0':ssum=ssum+0return ssum@staticmethoddef isBinary(numstr: str) -> bool:"""判断是否二进制字符串,必须包含为1或0:param numstr:二进制字符串:return: 是否为真"""length = len(numstr)isok = Falseif length > 0:for k in range(0, len(numstr)):if numstr[k] == '0' or numstr[k] == '1':isok = Trueelse:isok = Falsebreakreturn isok@staticmethoddef SixConvertTen(hexadecimalstr:str) -> int:"""十六制转十进制:param hexadecimalstr: 十六进制字符串:return: 返回整数"""table = {'0': 0, '1': 1, '2': 2, '3': 3,'4': 4, '5': 5, '6': 6, '7': 7,'8': 8, '9': 9, 'A': 10, 'B': 11,'C': 12, 'D': 13, 'E': 14, 'F': 15}#hexadecimal = '3B'  # input("Enter Hexadecimal Number: ").strip().upper()reInt = 0# computing max power valuesize = len(hexadecimalstr) - 1if size>0:for num in hexadecimalstr:reInt = reInt + table[num] * 16 ** sizesize = size - 1print("十六进制转十进制", reInt)return reInt@staticmethoddef hexadecimalConvertTen(hexadecimalstr: str) -> int:"""十六制转十进制:param hexadecimalstr: 十六进制字符串:return:"""#hex = '3B'  # input("Enter Hexadecimal Number: ")c = count = i = 0lenght = len(hexadecimalstr) - 1while lenght >= 0:if hexadecimalstr[lenght] >= '0' and hexadecimalstr[lenght] <= '9':rem = int(hexadecimalstr[lenght])elif hexadecimalstr[lenght] >= 'A' and hexadecimalstr[lenght] <= 'F':rem = ord(hexadecimalstr[lenght]) - 55elif hexadecimalstr[lenght] >= 'a' and hexadecimalstr[lenght] <= 'f':rem = ord(hexadecimalstr[lenght]) - 87else:c = 1breakcount = count + (rem * (16 ** i))lenght = lenght - 1i = i + 1return count@staticmethoddef hexadecimalConvertBin(hexadecimalstr: str) -> str:"""十六制转二进制:param hexadecimalstr::return:"""hexDict = {'0': '0000', '1': '0001', '2': '0010', '3': '0011', '4': '0100', '5': '0101', '6': '0110','7': '0111','8': '1000', '9': '1001', 'a': '1010', 'b': '1011', 'c': '1100', 'd': '1101', 'e': '1110','f': '1111'}binary = ''if len(hexadecimalstr)>0:hexadecimalstr = hexadecimalstr.lower()  # '3b'for digit in hexadecimalstr:binary += hexDict[digit]print(binary)return binary@staticmethoddef DecimalConvertBin(numint:int) -> str:"""十进制转二进制字符串:param numint::return:"""#numint = 59numstr = []binstring = ''while numint > 0:           renum  = numint % 2numstr.append(renum )numint = numint // 2while len(numstr) > 0:           binstring = binstring + str(numstr.pop())return binstring@staticmethoddef DecimalConvertOct(numint: int) -> str:"""十进制转八进制:param numint::return:"""#numint = 59numstr = []octtring = ''while numint > 0:           renum = numint % 8numstr.append(renum )numint = numint // 8while len(numstr) > 0:            octtring = octtring + str(numstr.pop())return octtring@staticmethoddef DecimalConvertHex(numint: int) -> str:"""十进制转十六进制:param numint::return:"""#numint = 59numstr = []hexstring = ''while numint > 0:           renum = numint % 16numstr.append(BinaryConvert.hexFoo(renum))numint = numint // 16while len(numstr) > 0:           hexstring = hexstring + str(numstr.pop())return hexstring

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/357383.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Qt Designer中管理QSplitter

问题描述 当按下按钮时&#xff0c;我希望弹出一个对话框&#xff0c;用户可以在其中选择内容并最终按下 ‘Ok’ 按钮。我想在这个对话框中放置一个 QSplitter&#xff0c;左侧面板将显示树状结构&#xff0c;右侧将显示其他内容。如何正确实现这一点&#xff1f; 从 Qt 的示…

oracle 主从库中,从库APPLIED为YES ,但是主库任然为NO

主库 从库 从库已经APPLIED但是主库为APPLIED&#xff0c; 主数据库和备用数据库之间的ARCH-RFS心跳Ping负责更新主数据库上v$archived_log的APPLICED列。 在主数据库上有一个指定的心跳ARCn进程来执行此Ping。如果此进程开始挂起&#xff0c;它将不再与远程RFS进程通信&#…

git拉取gitee项目到本地

git安装等不做赘述。 根据需要选择不同操作 1.只是单纯拉取个项目&#xff0c;没有后续的追踪等操作 不需要使用git init初始化本地文件夹 新建一个文件夹用于存储项目&#xff0c;右键选择 git bash here 会出现命令行窗口 如果像我一样&#xff0c;只是拉取个项目作业&…

Python爬虫技术:动态JavaScript加载音频的解析

在当今的互联网世界中&#xff0c;JavaScript已成为构建丰富交互体验不可或缺的技术。然而&#xff0c;对于网络爬虫开发者来说&#xff0c;JavaScript动态生成的内容却带来了不小的挑战。音频内容的动态加载尤其如此&#xff0c;因为它们往往涉及到复杂的用户交互和异步数据加…

xxe漏洞学习

一、什么是xxe漏洞 XXE就是XML外部实体注入&#xff0c;当允许引用外部实体时&#xff0c; XML数据在传输中有可能会被不法分子被修改&#xff0c;如果服务器执行被恶意插入的代码&#xff0c;就可以实现攻击的目的攻击者可以通过构造恶意内容&#xff0c;就可能导致任意文件读…

kafka(四)消息类型

一、同步消息 1、生产者 同步发送的意思就是&#xff0c;一条消息发送之后&#xff0c;会阻塞当前线程&#xff0c;直至返回 ack。 由于 send 方法返回的是一个 Future 对象&#xff0c;根据 Futrue 对象的特点&#xff0c;我们也可以实现同 步发送的效果&#xff0c;只需在调…

python---OpenCv(二),背景分离方法较有意思

目录 边界矩形 旋转矩形(最小外接矩形): 计算轮廓 找4个点的坐标 把浮点型转为Int 画轮廓 边界矩形--&#xff08;最大外接矩形&#xff09; 转灰度 找轮廓 找顶点 画矩形 显示 背景分离方法&#xff08;这个很好玩&#xff0c;可以识别在动的物体&#xff09; 边…

Redis源码学习:quicklist的设计与实现

为什么需要quicklist 假设你已经知道了ziplist的缺陷&#xff1a; 虽然节省空间&#xff0c;但是申请内存必须是连续的&#xff0c;如果内存占用比较多&#xff0c;申请效率低要存储大量数据&#xff0c;超过了ziplist的最佳上限后&#xff0c;性能有影响 借鉴分片思想&…

栅格数据重心迁移变化分析

目前网络上大多是针对矢量重心迁移进行计算&#xff0c;或把栅格转矢量在进行计算&#xff0c;可以不用怎么麻烦&#xff0c;可以直接利用栅格进行得出多期数据的重心&#xff0c;然后进行变化分析等方面的分析。 矢量数据可以通过下面方式进行重心计算&#xff1a; 使用ArcGIS…

1.1 数据采集总览

正所谓巧妇难为无米之炊&#xff0c;数据采集是数据处理的第一步。 什么是数据采集 数据采集&#xff0c;也称为数据收集&#xff0c;是将原始数据从各种来源获取并存储起来的过程。这个过程是数据分析和数据仓库建设的第一步&#xff0c;涉及到从不同的数据源中提取数据&…

Element-UI实现el-dialog弹框拖拽功能

在实际开发中&#xff0c;会发现有些系统&#xff0c;弹框是可以在浏览器的可见区域自由拖拽的&#xff0c;这极大方便用户的操作。但在查看Element-UI中弹框&#xff08;el-dialog&#xff09;组件的文档时&#xff0c;发现并未实现这一功能。不过也无须担心&#xff0c;vue中…

搜索引擎数据库介绍

搜索引擎数据库的定义 搜索引擎数据库是一类专门用于数据内容搜索的NoSQL数据库&#xff0c;是非结构化大数据处理分析领域中重要的角色。搜索引擎数据库使用索引对数据中的相似特征进行归类&#xff0c;并提高搜索能力。通过对索引和检索过程的优化&#xff0c;以处理大量文本…

前后端经验分享:秋招春招赛道如何选择

前言&#xff1a;考研考公&#xff1f;国企互联网&#xff1f;老白小粉也曾对未来的方向选择产生迷茫&#xff0c;但最终老白小粉都选择了就业 →前端春招秋招经验分享 →后端春招秋招经验分享 因此今天这篇文章主要针对秋招春招的就业赛道给予学弟学妹们一些建议。 对于计算机…

【深度学习系列】全面指南:安装TensorFlow的CPU和GPU版本

本博客旨在为初学者提供一份全面的指南&#xff0c;介绍如何根据个人电脑的配置选择并安装适合的TensorFlow版本。内容涵盖了如何查看电脑显卡型号以确定是安装CPU还是GPU版本的TensorFlow&#xff0c;创建Python虚拟环境&#xff0c;以及使用conda命令查找可用的TensorFlow版本…

厂里资讯之异步通知文章上下架

kafka及异步通知文章上下架 1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高&#xff08;主从&#xff09;高&#xff08;主从&#…

在 iPhone 上恢复已删除联系人的 5 种简便方法

想象一下&#xff1a;您正在 iPhone 上滚动并搜索要拨打的联系人&#xff0c;但却找不到任何结果。然后您想起昨晚您试图删除一个名字相似的联系人&#xff0c;但不知何故删除了错误的联系人。或者您的孩子错误地删除了一些联系人。这些情况足以让您感到迷茫。但别担心&#xf…

五种HTTP数据传输方式

在前端开发过程中,后端主要提供 http 接口来传输数据,而这种数据传输方式主要有五种: url paramqueryform-urlencodedform-datajson 下面就让我们一起来了解一下在Nest.js中如何使用这五种HTTP数据传输方式: 一,创建项目 使用nest new 创建一个nest的项目 nest new 项目名称 …

1panel OpenResty 设置网站重定向

当我们部署网站时需要&#xff0c;输入"cheshi.com"域名回车&#xff0c;希望他自动跳转https://cheshi.com/indx/&#xff0c;而不是直接跳转https://cheshi.com时可以利用重定向来实现&#xff0c; 这里演示的是 1panel 如何设置&#xff08;nginx 貌似也是这样配…

IPv6 address status lifetime

IPv6 地址状态转换 Address lifetime (地址生存期) 每个配置的 IPv6 单播地址都有一个生存期设置&#xff0c;该设置确定该地址在必须刷新或替换之前可以使用多长时间。某些地址设置为“永久”并且不会过期。“首选”和“有效”生存期用于指定其使用期限和可用性。 自动配置的…

程序猿大战Python——面向对象——继承进阶

方法重写 目标&#xff1a;掌握方法的重写。 当父类的同名方法达不到子类的要求&#xff0c;则可以在子类中对方法进行重写。语法&#xff1a; class 父类名(object):def 方法A(self):代码... class 子类名(父类名):def 方法A(self):代码... 例如&#xff0c;一起来完成&…