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.mzph.cn/pingmian/32509.shtml

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

相关文章

汉语拼音字母表 (声母表和韵母表)

汉语拼音字母表 [声母表和韵母表] 1. 汉语拼音声母表2. 汉语拼音韵母表References 1. 汉语拼音声母表 声母是韵母前的辅音&#xff0c;与韵母一起构成一个完整的音节。 辅音是发声时&#xff0c;气流在口腔中受到各种阻碍所产生的声音&#xff0c;发音的过程即是气流受阻和克…

2024年6月大众点评成都餐饮店铺POI分析22万家

2024年6月大众点评成都餐饮店铺POI共有221002家 店铺POI点位示例&#xff1a; 店铺id CACuqlcUQApLA7Ki 店铺名称 峨眉山豆腐脑(百吉街店) 十分制服务评分 7.3 十分制环境评分 7.5 十分制划算评分 7.1 人均价格 18 评价数量 38 店铺地址 百吉街86号1层 大类 美食 中类…

关于edge浏览器注册Kaggle不显示验证部分的问题

使用edge注册kaggle没有显示验证的部分导致无法完成注册 法一 谷歌大法好&#xff0c;使用谷歌注册就么有问题&#xff0c;然鹅需要魔法上网。 法二 使用 edge的Header Editor的插件 收到邮件后填写即可 参考博客&#xff1a; Kaggle平台注册弹不出验证码怎么办&#…

聊聊Vue中的Router(路由)

Vue构造的是一个单页面应用 在 Vue 中&#xff0c;router&#xff08;路由&#xff09;用于定义应用的不同页面路径和组件之间的映射关系&#xff0c;通过路由从而实现页面的切换和导航功能 vue中所有的xxx.vue文件&#xff0c;都是路由组件&#xff0c;这些组件都会被vue读取…

【物联网】NB-IoT

目录 一、什么是NBIOT 二、NB-IoT的特点 三、NBIOT的工作状态 四、移远NB-IoT模块及AT指令 一、什么是NBIOT NB-IoT&#xff08;Narrow Band Internet of Things&#xff09;窄带物联网&#xff0c;构建于蜂窝网络&#xff0c;所占用的带宽很窄&#xff0c;只需约180KHz&am…

基于NURBS曲线的数据拟合算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1NURBS曲线基础 4.2 数据拟合原理 5.完整程序 1.程序功能描述 基于NURBS曲线的数据拟合算法,非均匀有理B样条&#xff08;Non-Uniform Rational B-Splines&#xff0c;简称NURBS&#xf…

史上最强面试题,拿大厂京东,阿里offer全靠它。程序员必看。

答&#xff1a;对于short s1 1; s1 s1 1;由于1是int类型&#xff0c;因此s11运算结果也是int 型&#xff0c;需要强制转换类型才能赋值给short型。而short s1 1; s1 1;可以正确编译&#xff0c;因为s1 1;相当于s1 (short)(s1 1);其中有隐含的强制类型转换。 #6、Java 有…

Java学习 (二)关键字、标识符、数组

一、关键字 我们第一章案例中有很多关键字&#xff0c;比如class、public、static、void等&#xff0c;这些关键字依旧被java定义好了&#xff0c;可以拿来用&#xff0c;不需要死记硬背&#xff0c;按照官方文档查询即可 #官方文档 https://docs.oracle.com/javase/tutorial/j…

瑞吉外卖问题(待更新...

文章目录 一、session注册时二、用户增加时三、RequestBody3.1 Long问题3.2 RequestBody3.3 UpdataById 一、session注册时 刚开始使用的是该代码 httpServletRequest.setAttribute("employee",emp.getId());导致我点击登录后&#xff0c;还是一直在登录页面&#x…

1970-2022年中国碳排放1KM栅格数据

【数据简介】 数据名称&#xff1a;1970-2022年中国碳排放栅格数据&#xff08;1KM) 区域范围&#xff1a;全国 数据格式&#xff1a;tif文件 数据大小:800M 数据来源&#xff1a;欧盟委员会全球大气排放数据库&#xff08;EDGAR) 部分数据预览&#xff1a; 原文链接http…

InfoMasker :新型反窃听系统,保护语音隐私

随着智能手机、智能音箱等设备的普及&#xff0c;人们越来越担心自己的谈话内容被窃听。由于这些设备通常是黑盒的&#xff0c;攻击者可能利用、篡改或配置这些设备进行窃听。借助自动语音识别 (ASR) 系统&#xff0c;攻击者可以从窃听的录音中提取受害者的个人信息&#xff0c…

技术师增强版,系统级别的工具!【不能用】

数据安全是每位计算机用户都关心的重要问题。在日常使用中&#xff0c;我们经常面临文件丢失、系统崩溃或病毒感染等风险。为了解决这些问题&#xff0c;我们需要可靠且高效的数据备份与恢复工具。本文将介绍一款优秀的备份软件&#xff1a;傲梅轻松备份技术师增强版&#xff0…

RAG | (ACL24规划-检索增强)PlanRAG:一种用于生成大型语言模型作为决策者的规划检索增强生成方法

原文&#xff1a;PlanRAG: A Plan-then-Retrieval Augmented Generation for Generative Large Language Models as Decision Makers 地址&#xff1a;https://arxiv.org/abs/2406.12430 代码&#xff1a;https://github.com/myeon9h/PlanRAG 出版&#xff1a;ACL 24 机构: 韩国…

HTML(19)——Flex

Flex布局也叫弹性布局&#xff0c;是浏览器提倡的布局模型&#xff0c;非常适合结构化布局&#xff0c;提供了强大的空间分布和对齐能力。 Flex模型不会产生浮动布局中脱标现象&#xff0c;布局网页更简单、更灵活。 Flex-组成 设置方式&#xff1a;给父元素设置display:fle…

字节跳动最终面,面试官抛出一个“Flutter”我居然懵了

由于在业务开发过程中&#xff0c;开发者大部分的时间都专研于一种编程语言&#xff0c;如果想要掌握多端开发能力&#xff0c;则又稍显力不从心&#xff0c;因此大前端的概念应运而生。 大前端概念对于编程开发者来说早已耳熟能详&#xff0c;从我的角度来理解这个概念的话&a…

国企:2024年6月中国移动相关招聘信息 二

在线营销服务中心-中国移动通信有限公司在线营销服务中心 硬件工程师 工作地点:河南省-郑州市 发布时间 :2024-06-18 截至时间: 2024-06-30 学历要求:本科及以上 招聘人数:1人 工作经验:3年 岗位描述 1.负责公司拾音器等音视频智能硬件产品全过程管理,包括但…

HTML静态网页成品作业(HTML+CSS)——动漫猪猪侠网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…

黑马HarmonyOS-NEXT星河版实战

"黑马HarmonyOS-NEXT星河版实战"课程旨在帮助学员深入了解HarmonyOS-NEXT星河版操作系统的开发和实际应用。学员将学习操作系统原理、应用开发技巧和界面设计&#xff0c;通过实战项目提升技能。课程注重实践与理论相结合&#xff0c;为学员提供全面的HarmonyOS开发经…

Pytho字符串的定义与操作

一、字符串的定义 Python 字符串是字符的序列&#xff0c;用于存储文本数据。字符串可以包括字母、数字、符号和空格。在 Python 中&#xff0c;字符串是不可变的&#xff0c;这意味着一旦创建了一个字符串&#xff0c;就不能更改其中的字符。但是&#xff0c;你可以创建新的字…

【广度优先搜索 深度优先搜索 图论】854. 相似度为 K 的字符串

本文涉及知识点 广度优先搜索 深度优先搜索 图论 图论知识汇总 深度优先搜索汇总 CBFS算法 LeetCode 854. 相似度为 K 的字符串 对于某些非负整数 k &#xff0c;如果交换 s1 中两个字母的位置恰好 k 次&#xff0c;能够使结果字符串等于 s2 &#xff0c;则认为字符串 s1 和…