hxl_led 发表于 2020-3-17 13:36:40

python 如何提取二进制字符串 C = "10100001" (0xa1)

我想提取D7,6位, a = C 能不能想办法写成 a = C

python 字符串是从0开始
我们理解中二进制字符串的意义是数字的最高位
该如何做呢

liansh2002 发表于 2020-3-17 13:50:16

没看懂楼主想表达什么,你到底是想截取字符串中的某两位,还是想截取某个值中的2bit?

'0b10100001'从左往右解读,左侧是最高位,这是人去读的方法,和python中数据如何储存处理一点关系都没有。就如同左移是乘,右移是除,在哪都一样,和大小端无关一样。

gaolf_2012 发表于 2020-3-17 19:32:39

先转成int再与0xc0行不?

nanfang2000 发表于 2020-3-17 20:44:34

感觉楼主是想按照逆序索引,那就转一下就好了呗
i1=7
i2=6
a = C[(7-i1):(7-i2+1)]

可以做成函数

xstt 发表于 2020-3-17 21:16:06

自己写个函数不就可以了么,难道你想修改这个自带的函数?没意义啊

hxl_led 发表于 2020-3-17 23:17:12

nanfang2000 发表于 2020-3-17 20:44
感觉楼主是想按照逆序索引,那就转一下就好了呗
i1=7
i2=6


谢谢,我就是这样做的,只是觉得不自然哈

nanfang2000 发表于 2020-3-18 08:52:56

hxl_led 发表于 2020-3-17 23:17
谢谢,我就是这样做的,只是觉得不自然哈

你可以用a=C[-8:-6]这种写法

Jach 发表于 2020-3-18 19:15:47

hxl_led 发表于 2020-3-17 23:17
谢谢,我就是这样做的,只是觉得不自然哈

i7=0
i6=1
...
...
i1=6
i0=7
a = C
a = C
页: [1]
查看完整版本: python 如何提取二进制字符串 C = "10100001" (0xa1)