*1.4 二进制与字符编码
注:本小节带 *,不需要进行学习,可以简单进行了解
⛲️ 计算机为什么能够认识我呢?
其实,我们的计算机没有我们想象中的那般智能,计算机其实只能认识0
和1
,那么对于0
和1
这两个字符,显然是只能表示两种状态的,可是我们的状态成千上万,显然是不够的,怎么去进一步包涵所有的状态呢?
答案就是:加位,如果只用一位数,那么显然只能是0
和1
这两种情况了,那么如果我们用两位数的话,就可以表示出:00
,01
,10
,11
四种不同的状态,那么如果我们用八位数去表示的话,就会有28即256种不同的状态,这就形成了我们的 ASCII 码表:
❗️ 这里多说一句:我们用 8 位就可以表示出来 256 种不同的状态,在 算法竞赛中,这样的思想叫做状态压缩,动态规划中常用的一种思想就是 状态压缩DP,对算法竞赛感兴趣的同学可以看我写过的一些算法文章,如:状态压缩DP
显然对于现实生活中,256个状态也是完全不够用的,至今,汉字已有90000多个,每一个汉字都对应一种状态,那么我们现在如何去把汉字甚至是各个国家的语言都成功的表达翻译到计算机中的呢?对此,世界上有如下图所示的规定:
1.5 类型转换
函数 | 作用 | 注意事项 | 举例 |
int() | 将其他数据类型转为整型 | 文字和浮点型字符串不能转,浮点型转整型采用去尾法 | int(‘666’) |
str() | 将其他数据类型转为字符串类型 | str(666) | |
float() | 将其他数据类型转为浮点型 | 带文字的字符串不能转,整型转浮点型末尾补.0 | float(666) |
下面用代码去演示:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/6 19:17 # 欢迎大家关注AIoT相关博客~ # int()函数的使用: print(int(19.8)) print(int(True)) # print(int('hello world')) 这行代码会报错 # float()函数的使用: print(float(74)) print(float('12.8')) # print(float('hello 辰chen')) 这行代码会报错 # str()函数的使用: print(str(666)) print(type(str(666)))
这里有一个小细节,我们发现 int(True)
的结果是 1
,读者可以下去自己实践一下 int(False)
的结果
🚩这里还有一个特殊的小知识点,就是我们的bool()
函数,它的用法和上面所介绍的强制转换其实不一样,并不是把一个东西的值强制转换为 bool 类型,它的作用是获取对象的 bool 值,在 Python 中一切皆对象,所有的对象都有一个布尔值,我们可以采用 bool()
函数去获取 bool 值,使用方法就是把想求的对象放到 ()
中即可,下面还是通过代码去演示一下:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/7 11:59 # 欢迎大家关注AIoT相关博客~ ''' 我们规定以下对象的bool值为False: False 0 None 以下的对象bool值也为False,我们后续会逐个去讲解 现在不需要掌握: 空字符串 空列表 空元组 空字典 空集合 ''' # 下面代码只演示我们学过的对象的bool print(bool(None)) print(bool(0)) print(bool(False)) print('----------------------') print(bool(666)) print(bool(-1))