Python 二进制 八进制 十进制 十六进制之间的转换

news2024/11/17 13:27:06

众所周知:计算机底层是以二进制数来进行存储计算,而计算机进制:数制是用一组固定的符号和统一的规则来表示数值的方法。

开始下面讲述之前首先要声明:

二进制,八进制,十六进制 都可以转换为十进制,十进制也可转换为二进制,八进制,十六进制  ,二进制 八进制 十六进制相互之间不能直接转换,必须依托十进制,例如:二进制转换为八进制  二进制先转换为十进制,由十进制来转换为八进制

 二进制(0b开头):

二进制数中的数字元素只能由0和1构成 逢2进位  例如: 十进制数 3 是由 3 = 2+1 现在他们都是按照零位来看 ,二进制逢2进1位 ,1还是0位1,经过二进制转换十进制3转换为二进制数 就是 1 1

八进制(0o开头):

是由0-7之间的数字构成,满八进一位

十进制数:

就是我们常用于数学计算的进制关系,逢十进一

十进制数(我们常用的数学算数就是十进制): 是由 0~9这九个数字构成,逢10进1位,这里10指的是一位,比如0位凑够了10就要给1位加1

十六进制: 0x 开头

十六进制数字是由 0  1  2  3  4  5  6  7  8  9  A   B    C   D   E   F

                                                10  11  12   13  14  15

其中从10开始皆有 大写英文字母以 A~F 来表示10 ~15的数字

 二进制转换十进制:

二进制的是由0和1组成的字符串 逢二进位 ,什么意思呢  二进制中如果一个数字大于2就需要进往前进一位  

二进制的基数是2 

1 等于2的0次方

10 等于2的1次方

100 等于 2的2次方

1000 等于 2的3次方

…       …….

……     ……….

10000000   等于 2 的3次方

实例:  0011001   二进制数

二进制数基本单位是bit(位)

          转换十进制

            位        6   5   4   3   2   1   0    

     将二进制数展开   0   0   1   1   0   0   1

从左往右看   1 = 1 x 20   0 = 0 x 21  0 = 0 x 22  1 = 1 x 23   1 = 1 x 24  0 = 0 x 25  0 = 0 x 26

然后把它们的和加起来:  1 + 0 + 0 + 8 + 16 + 0 + 0  = 25

所以说我们将二进制数:0011001 转化为十进制数为21

关于位应理解为2的几次方  从左往右看  第一个二进制数字就是  第0位,2的零次方 第二个二进制数是第 1 位 2的1次方,有1占位就给它乘以1是0占位就给它乘以0

例如:  二进制数1 0(一 零)  从左往右看 0  1  0 是 0 x 20    1 是 1 x 2 1   

所以 二进制数 1 0  转化为十进制数是  0 x 1 + 1 x 2  = 2   

我们用python程序来验证一下

print(int("0011001 ",base = 2))

int() 是将任何进制的数据转换为十进制数,"0011001 " 是需要进行转换的二进制字符串,

base = 2   base 等于 几就说明 字符串中的数据是几进制数

八进制数转换十进制数:

例如:八进制数35 转换为十进制数

 35

  35

2  17  1

2   8   1

2   4    0

2    2    0

2    1    0

          1

八进制35转换为二进制数是 100011

35的二进制数100011 转换为十进制数是

  1.   5
  1. 0

将35按照权展开

3 x 81 + 5 x 80  = 24 + 5 = 29

我们用python程序验证一下:

print(int("35 ",base = 8))

十六进制转换十进制:

十六进制数转换十进制数:

例如:将十六进制数 DF 转换为十进制数

D在十六进制数中表示13 F 表示15

DF  = 1315

将1315 转换为 十进制数

按权展开:

1    3    1   5

3    2    1    0

5乘以 16 的0次方 +  1 乘以16 的1 次方 + 3 乘以 16 的二次方 + 1乘以 16 的三次方

  1. + 16 + 768 + 4096 = 4885

十进制转换为二进制、八进制、十六进制

十进制转换二进制:

十进制除2反向取余数

例如: 33 转换为二进制是多少?

十进制数转换为八进制数:十进制数除8反向取余

例如: 十进制33 转换为八进制数:

十进制转换十六进制:

十进制除16反向取余数

例如: 是十进制数 33 转换为 十六进制数:

我们得到的结论是十进制数转换为几进制数,就除几,然后将得到的余数反向写出来

二进制 八进制 十六进制之间相互转换 :

如果是 二进制转换八进制 需要先把二进制数转换为十进制数,然后将十进制数转换为八进制数

例如: 二进制 110110转化为八进制是多少?

先将二进制数据转换为十进制数据

按权展开:

1    1    0    1   1   0                   二进制数据

5    4    3    2    1   0                    位

0 + 2 + 4 + 0 + 16 + 32 = 54

然后十进制数54 转换为八进制数   

除数               被除数              余数

8                       54

8                       6                     6

                                                 6       

反向取余数: 66 

由此得出二进制数110110 转换为八进制是66   

     

print(oct(54))                

要注意的是: 在程序中如果出现了一段字符串以0b开头 表示这是一段二进制数据

如果是0x开头说明这是一段十六进制数据,如果是0o开头说明这是一段八进制数据

下面是一些python用于进制之间转换的内置函数,虽然有方便的计算函数,但是我还是希望你能知晓其中的运算逻辑

#python中的由十进制转换为二进制,八进制,十六进制的方式  0b11001 0o31 0x19
bin() 函数
v1 = bin(25)  #由十进制转换为二进制   
# 0b11001  ob表示二进制标识符  11001 才是将十进制的25转换为 二进制的值
oct() 函数
v2 = oct(54)  # 由十进制转换为八进制
#0o31   0o 表示是八进制的标识符
hex() 函数
v3 = hex(25)  #由十进制转换为十六进制的方式
# 0x19       0x 表示十六进制的标识符
print(v1,v2,v3)

 

 

二进制八进制十六进制之间的转化函数:

# 将十六进制转为二进制
print(bin(int("1F606",base = 16)))  

bin()  说明最终的结果是二进制数据,int()说明先要转换为十进制数据 ,“1F606”  是待转化的字符串数据,base = 16  说明待转化的数据是十六进制 base 等于几就说明你想将那种数据转换成为十进制数据

#将十六进制转换为八进制:
print(oct(int("DF",base = 16)))

其他照同上述阐述

#将二进制转换成为十六进制
print(hex(int("110110",base = 2)))

 

 

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

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

相关文章

【DRF配置管理】如何在视图类使用get_objects()

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 DRF应用和管理 【DRF配置管理】Django使用DRF框架 【DRF配置管理】如何在视图类配置参数(一) 【DRF配置管理】如何在视图类配置参数(二) 【DRF配置管理…

第二届广州·琶洲算法大赛启动,百度飞桨助力广州打造中国算法新高地

‍‍ 生成式人工智能热潮席卷全球,算法创新成为 AI 突破发展的关键,推动实体经济高质量增长。4月25日,第二届广州琶洲算法大赛正式启动,广州市政府主办、百度飞桨等联合承办,广召天下算法英雄,加快“琶洲算…

<网络编程>网络套接字

目录 理解源IP地址和目的IP地址 认识端口号 端口号和进程ID的关系 理解源端口号和目的端口号 初步认识TCP、UDP协议 TCP协议 UDP协议 网络字节序列 socket网络接口 socket常见API sockaddr结构 UDPsocket 编码: 理解源IP地址和目的IP地址 源IP&#xf…

服装店铺装修有哪些窍门?做好这3点,顾客主动上门

现在街边有各种各样的服装店,有的服装店客流不断,有的服装店却很冷清,导致这种现象的原因有很多,比较重要的一点就是你的服装店铺装修没做好。 你的服装店铺装修足够吸引人吗? 什么样的服装店铺装修才能吸引顾客&#…

【技巧】如何修改PDF文件?

PDF文件格式安全、标准化,很多人在工作中几乎离不开。可有些小伙伴想要修改PDF文件内容时,发现无法修改,那是什么情况呢?如何才能修改PDF文件呢?下面小编就来分享一些小技巧。 技巧一:使用PDF编辑器 如果使…

凌恩生物文献分享|一株细菌完成图也能发一区10分+!

期刊:Science of the Total Environment 影响因子:10.753 发表时间:2022 样本类型:Bosea sp. Ads-6菌株 客户单位:中国科学院微生物研究所 一、研究背景 环境中抗生素残留和耐药性的增加引发了许多…

一文详解汽车操作系统现状

摘要: 智能座舱和自动驾驶的发展,特斯拉的突飞猛进,让各大主机厂越来越重视汽车操作系统。但车企现在所做的软件定义汽车,大都是通过软硬件解耦来降低造车成本、丰富新车功能,在操作系统层面大都还停留在市场调研和学…

linux ubantu 16.04 安装fbprophet 和 pystan经验总结

写在前面 之前在window11上,安装了一下午,不是C版本不行,就是这个那个不通过,主要是Pystan运行不起来就很气,fbprophet本身就需要依赖这个包,然后MSVC不支持,裂开。尝试了很多次,碰…

基于Java开发的分布式在线教育系统,支持考试、直播、问答

一、开源项目简介 知道学习平台是一个基于 Java 开发的分布式在线教育系统项目采用前后端分离的企业级微服务架构引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易注重代码规范,严格控制包依赖可以帮助个人、企业或机构快速搭建一个在线…

C# 利用TabControl控件制作多窗口切换

TabControl控件切换时触发的事件 选项卡切换触发的是TabControl控件的SelectedIndexChanged事件。 当TabControl控件的任何一个TabPage被点击或选择,即发生SelectedIndexChanged事件事件。 代码如下: private void tabControl1_SelectedIndexChanged(o…

设计模式 --- 结构型模式

一、概述 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”…

L2TP Client-initated场景

L2TP Client-initated场景 1. 原理 ![原理](https://img-blog.csdnimg.cn/66ce3169502b4252bca5d9d7a6c0027c.png)1.1 阶段1:创建L2TP隧道 C与LNS通过交互三条消息协商隧道ID、UDP端口(1701)、主机名称、L2TP版本、隧道验证等参数。 1.2 …

使用Spark实现词频统计

文章目录 一,词频统计准备工作(一)版本选择问题(二)安装Scala2.12.15(三)启动集群的HDFS与Spark(四)在HDFS上准备单词文件 二,本地模式运行Spark项目&#xf…

Meta的分割一切模型SAM( Segment Anything )测试

Meta不久前开源发布了一款图像处理模型,即分割一切模型:Segment Anything Model,简称 SAM,号称要从任意一张图片中分割万物,源码地址为: https://github.com/facebookresearch/segment-anything打开后看到…

ssm+java企业公司产品分销商管理系统

一、 二、经营管理: ①分销商每月提交自己进多少货物(从总部进购了多少“鹊巢”的商品给自己负责区的大型商超)——对应的种类一共进多少货物;该种类中具体的产品又进了多少货物具体到(参考三产品管理模块)…

RelativeLayout相对布局

一、官方地址&#xff1a; https://developer.android.google.cn/reference/kotlin/android/widget/RelativeLayout?hlen 二、概述 相对布局&#xff08;RelativeLayout&#xff09;是一种根据父容器和兄弟控件作为参照来确定控件位置的布局方式 三、基本格式 <RelativeLay…

Nacos注册中心的使用

文章目录 Nacos注册中心1. 服务注册到nacos1&#xff09;引入依赖2&#xff09;配置nacos地址3&#xff09;重启 2.服务分级存储模型2.1.给user-service配置集群2.2.同集群优先的负载均衡 3.权重配置 Nacos注册中心 国内公司一般都推崇阿里巴巴的技术&#xff0c;比如注册中心…

Docker安装Redis(普通安装+在线安装+离线安装)

文章目录 Redis概述一、磁盘安装1.1 安装环境1.2 安装步骤1.3 服务器启停命令 二、docker安装1.在线安装2.离线安装 总结 Redis概述 Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSI C语言编写、支…

ext-1:PDK工具包编译出例程

1、TI的单独StarterWare不更新后&#xff0c;后续维护和更新的是 PROCESSOR-SDK-AM335X 软件开发套件 &#xff08;PDK&#xff09;&#xff0c;对比以前的&#xff0c;里面没有例程&#xff0c;所以下载安装完需要自己编译出example例程。 因为编译出example例程中间会出现很…

设计模式--适配器模式

目录 基本介绍 工作原理 类适配模式 介绍 应用实例介绍 类适配器模式注意事项和细节 对象适配模式 介绍 对象适配器模式注意事项和细节 接口适配器模式 介绍 适配器模式的注意事项和细节 基本介绍 (1) 适配器模式(Adapter Pattern) 将某个类的接口转换成客户端期望的…