Java和Python中的编码解码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Marvel__Dead/article/details/82929326
str_str = "中"
# 編碼為 utf-8,返回為bytes類型
str_bytes = str_str.encode("utf-8")
# 獲取byte數組,相當於Java的byte數組
str_list = []
for x in str_bytes:
    print(x)
    str_list.append(x)
# 把byte列表轉化爲bytes類型,再解碼為UTF-8類型
print(bytes(str_list).decode())
print(bytes([100, 56, 45]).decode())

'''
0正1負
228 源碼:‭11100100‬ 
    10011011    10011100
補碼:10011100
代表值:-28

184 源碼:‭10111000‬
    11000111    11001000
補碼:11001000
代表值:-72

173 源碼:‭10101101‬
    11010010    11010011
補碼:11010011
代表值:-83
'''

在Python中,byte的範圍是【0,256】(ValueError: bytes must be in range(0, 256))
在Java中,byte的範圍是【-128,127】

其中無符號byte和有符號byte是可以互相轉化的,無符號轉化爲有符號為補碼。

参考地址:
https://blog.csdn.net/sinat_38816924/article/details/78438070
https://zhidao.baidu.com/question/10297593.html
https://blog.csdn.net/foryouslgme/article/details/54948394

猜你喜欢

转载自blog.csdn.net/Marvel__Dead/article/details/82929326