Java和Python中的编码解码

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值