二、八、十、十六进制介绍及相互转换

1 进制介绍及区分

1.1 介绍

二进制,八进制,十进制,十六进制指的是数值的不同表示形式。

举个例子:假设数值就是我自己,无论处于何种情境,我的本质始终如一。就像在不同的场景中我有着不同的身份,在学校我是学生,在家里我是子女,在公司我是员工,在战场我是战士。无论我在学校、家里、公司还是战场,我这个人的本质是不变的。只是因为所处的“环境规则”不同,导致了外在的表现形式有所差异。

比如说:数值15的各种进制表示形式:

各种进制数值15
进制1111
八进制17
十进制15
十六进制F

尽管**‘1111’、 ‘17’、 ‘15‘ 、’F‘形式不同,但是他们都是指的是15**这个数值。

1.2 区分

在上面的例子中,我们可以看到八进制17二进制15实际上是相等的。如果没有事先告诉我们,只给出1715这两个数,我们该如何区分它们是八进制还是二进制呢?同样地,十六进制F字符 F 又该如何区分呢?如果我们无法区分,那么计算机也无法识别它们。因此,我们需要一种方法来标记这些数字的进制,以确保计算机能够正确地识别它们。因此,在计算机上写八进制和十六进制的数值时,需要一些标记:

(1)十六进制的数值之前写:0x;
(2)八进制的数值之前写:0。

这样在输入到计算机的时候,计算机就可以很轻易的区分输入的值是上面形式了。如图展示:

img

我们可以看到打印出来的结果都是15。

1.3 各进制的数字组成

各进制数字组成
十进制0 1 2 3 4 5 6 7 8 9 ;
八进制0 1 2 3 4 5 6 7 ;
十六进制0 1 2 3 4 5 6 7 8 9 a b c d e f;
进制0 1;

2 二进制与十进制

2.1 十进制的介绍

在介绍其它进制之前,我们先说一下十进制,十进制是我们生活中经常所使用的,因此我们也形成了一些常识:

(1)十进制中满10进1;
(2)十进制的数字每一位都是由0~9的数字组成。

2.2 二进制的介绍

当了解了十进制后,其实二进制也是一样的。

(1)二进制中满2进1;
**(2)二进制的数字每一位都是由0 1组成的,**比如说1101就是2进制的数字了。

2.3 二进制与十进制的转换

2.3.1 二进制转十进制

十进制的123表示的值就是123,那么为什么呢?其实十进制的每一位是由权重的,十进制的数字从右向左是个位、十位、百位……分别每一位的权重是100、101、10^2……如图:十进制表示123

百位十位个位
十进制的位123
权重10^210^110^0
权重值100101
求和1*1002*103*1123

二进制和十进制是类似的,只不过二进制的每一位的权重,从右向左是:20、21、2^2……2进制的1101表示为十进制是多少呢?如图:

二进制的位1101
权重2^32^22^12^0
权重值8421
求和1*81*40*21*113

二进制的1101转为十进制后的值为 13。

2.3.2 十进制转二进制

img

如果十进制数字比较小,也可以直接凑出来。

二进制值111111
权重2^52^42^32^22^12^0
对应值32168421

比如说十进制数值25**:25 = 16 + 8 + 1;**因此25所对应的二进制表示为11001。

3 进制和十六进制

3.1 八进制的介绍

(1)八进制满8进1;
(2)八进制的数字每一位都是由0~7的数字组成;
(3)八进制在计算机里表达要在前面加上0。

八进制数字17 转十进制的值:

八进制的位17十进制的值
权重8^18^0
权重的值81
求和1*87*115

3.2 十六进制的介绍

(1)十六进制满16进1;
(2)十六进制的数字每一位都是由09,af 组成;
(3)十六进制的数字在计算机表达上要在前面加上0x。

注意:之所以使用af来表示1015是为了区分方便。

十六进制数字1f 转10进制的值:

16进制的位1f10进制值
权重16^116^0
权重的值161
求和1*16f*131

3.3 二进制转八进制和十六进制

3.3.1 二进制转八进制

八进制的数字每一位都是07之间的,07的数字,各自写成二进制,最多3个二进制位就可以表示了,比如7的二进制是111,所以二进制在转八进制的时候,从二进制序列中右边低位开始向左每3个二进制位换算一个八进制位,剩余不够3个二进制位的直接换算。

如:二进制的01101011,换成八进制:0153,0开头的数字,会被当成八进制。

2进制0 11 0 10 1 1
8进制153

八进制每一位用二进制表示:

八进制数字二进制表示
0000
1001
2010
3011
4100
5101
6110
7111

3.3.2 二进制转十六进制

十六进制的数字每一位都是09.af之间的,09.af的数字,各自写成二进制,最多4个二进制位就可以表示了,比如f的二进制是1111,所以二进制在转十六进制的时候,从二进制序列中右边低位开始向左每4个二进制位换算一个八进制位,剩余不够4个二进制位的直接换算。

如:二进制的01101011,换成十六进制:0x6b,十六进制表示的时候前面假0x。

二进制0 1 1 01 0 1 1
十六进制6b

十六进制每一位用二进制表示:

十六进制二进制
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
a1010
b1011
c1100
d1101
e1110
f1111

3.3.3 进制和十六进制转二进制

需要借助十进制来间接转换,比如说想把八进制数字017转换为二进制数字,需要先将017转化为十进制数字15,然后15在转换成二进制数字:1111,十六进制亦是如此。

文章已获作者授权转载,版权归原作者所有,如有侵权,与本账号无关,可联系删除。 原文作者:JonlyMay
原文链接:https://blog.csdn.net/2401_85010100/article/details/140768661

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值