核心思想:
冯诺依曼 + 图灵机
电如何表示状态,才能稳定?
计算机开始设计的时候并不是考虑简单,而是考虑能自动完成任务与结果的可靠性,
简单始终是建立再稳定、可靠基础上
经过尝试10进制,但很难检查电流的状态差异并且很难稳定状态,最稳定的检查是
通电和不通电状态,共两种状态那就规定 通电为 1 不通电 为 0,1和0的状态逻
辑被称为比特 Bit
那么如何用 0 和 1 表示数字和字符呢?
首先找出需要表示的字符,英文字符和数字字符才100多个,需要 7 个二进制位就
可以全部表示,但为了可扩展性,多出一位表示扩展,这就是ASCII码
因为一个字符只需要最多8个二进制位表示,所以规定8个字节作为存储单位,所有
8 Bit = 1 Byte
规定字符用数字表示,数字用二进制表示,也就是 字符 --> 数字 -- > 二进制,
那么文本信息就可以通过计算机存储为二进制,计算机上存储的二进制数可以逆转
成文本信息
10 进制到二进制之间的关系转换是固定的,那么字符到数字之间的转换被我们称为
字符编码, ASCII码 Unicode UTF-8 都是存储字符与数字之间的映射关系
弄清楚几个关系
1. 字符与数字之间的关系为映射关系,人为规定的标准
这种映射关系,生活中普遍存在,如
a. 身份证信息与身份证号码
b. 数据库id与该行信息
c. 订单信息与订单编号
d. 员工编号与员工
e. 字典的键与值
f. 内存地址与存储在该地址上的值
...
2. 数字到二进制之间的关系,这个如同数学或物理定律一样,固定转换方式,写死的
3. 8进制 16 进制都是建立在2进制的基础上,和10进制之间没有直接关系,主要为了
可读性,二进制的两种表示形式
如二进制 00000000 一个存储单位,八进制000 000 000 每 3 个二进制位转
换位10进制表示,最小数为 0 最大数为 7,所以取值范围为 0 - 7
十六进制 0000 0000 每 4个二进制位转换位10进制表示,最小位为0 最大为15,
所有取值范围为 0 - 15,因为超出10机制表示范围所以用 abcdef表示 10 11
12 13 14 15
十六进制常用于 内存地址表示 IPv6地址 颜色表 mac地址 二进制数据\x前缀b/B
IP地址(32位 点分十进制) x.x.x.x 每个x都是8个bit位表示的十进制数字
# 8进制 16进制是建立在二进制的基础之上
Py进制转换函数
10进制转其他进制
转2进制 bin 前缀0b
转16进制 hex 前缀0x
转8进制 oct 前缀0o
# 二进制 八进制 十六进制都是通过带前缀的字符串形式"0b/o/x..."
# 10 进制转其他进制 number = 9999 print("10进制转其他进制".ljust(40, "*")) # 10 进制转2进制 b_number = bin(number) print("二进制:", b_number) # 10进制转8进制 o_number = oct(number) print("八进制:", o_number) # 10进制转16进制 h_number = hex(number) print("十六进制:", h_number)