Python_编码_进制_位_字节_字符

### 基本概念
首先理解两个概念,有些东西是为了让机器认识的,有些东西是为了让人认识的。

进制(2,3,8,10,16)都是为了机器可以直接理解的。

编码(ASCII,unicode,utf-8),把只有机器认识的二进制体现为人一眼就能看明白的字符。

### 基础知识
二进制:0-1

八进制:0-7

十进制:0-9

16进制:0-f

- 位,字节,字符,字符串
- 位:bit 表现形式: 0或者1 ,最底层的体现
- 字节:byte 等于8bit 表现形式:八位的bit 一起, 如01010101,组合起来可以代表某些字符
- 字符:char 至少是1个字节即8bit. (注意:不同编码下的1字符所包含的字节是不一样的)
- 字符串:一串字符组合而成

### 编码
ASCII:1个字符=1个字节=8bit。
unicode:1个字符=2个字节=16bit。
utf-8:可变长的编码,一个字符等于1~4个字节。

### 关系,转换

数字

python里,整数 通过int(),bin(),oct(),hex()进行转换

bin(10)

oct(10)

hex(10)

hex只能转换数字到16进制

hex(b'10')

### 字符

python里,字符 通过chr(),ord()进行转换

ord('汗')

chr(27735)

bin(27735)

ord('a')

chr(97)

bin(97)

### 码制之间的转换

通过encode(),decode()进行转换(默认是utf8)


tmp_str = '汗'
encode_str = tmp_str.encode()
print(encode_str)
decode_str = encode_str.decode("utf-8")
print(decode_str)


### 重点,utf8 和 unicode 之间的区别

一个汉字,在 utf8里面是三个字节,在unicode 里面是两个字节。

tmp_str

tmp_str.encode('unicode_escape')

tmp_str.encode('utf8')

b'\\u6c57'.decode('unicode_escape')

b'\xe6\xb1\x97'.decode('utf-8')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值