Python 編碼 進製 位 位元組

2021-10-10 02:34:26 字數 1321 閱讀 1695

### 基本概念

首先理解兩個概念,有些東西是為了讓機器認識的,有些東西是為了讓人認識的。

進製(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')

位 位元組 編碼格式

位 bit 計算機中最小的資料單位。每一位的狀態只能是0或1。位元組 byte 儲存空間的基本計量單位,8個二進位制位構成乙個位元組 編碼格式 ascii 127個字元被編碼到計算機裡,也就是大小寫英文本母 數字和一些符號 unicode 把所有語言都統一到一套編碼裡,解決亂碼問題 gbk 有一位元...

python 位元組編碼 python編碼

參考文章 python編碼 encode 將unicode字元按照編碼規則 如utf 8 編成位元組序列。a u 測試 a.encode utf 8 xe6 xb5 x8b xe8 xaf x95 python解碼 decode 將位元組序列按照編碼規則 如utf 8 解釋成unicode。a b ...

位 位元組 進製梳理與位操作

位 bit 是計算機最基礎也是最小的資料度量 位是二進位制數例如 10101010 每乙個數字便是一位 bit 位元組 每一位元組有8位8bit 進製是進製,位是位 16進製制數0xffffffff 其中0x是16進製制數的標誌,表示標誌後面的數是16進製制的 其中每乙個f可以表示成二進位制數 11...