搜索
bottom↓
回复: 7

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

[复制链接]

出0入25汤圆

发表于 2020-3-17 13:36:40 | 显示全部楼层 |阅读模式
我想提取D7,6位, a = C[0:2] 能不能想办法写成 a = C[7:6]

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

出0入0汤圆

发表于 2020-3-17 13:50:16 | 显示全部楼层
没看懂楼主想表达什么,你到底是想截取字符串中的某两位,还是想截取某个值中的2bit?

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

出20入12汤圆

发表于 2020-3-17 19:32:39 来自手机 | 显示全部楼层
先转成int再与0xc0行不?

出0入0汤圆

发表于 2020-3-17 20:44:34 | 显示全部楼层
感觉楼主是想按照逆序索引,那就转一下就好了呗
i1=7
i2=6
a = C[(7-i1):(7-i2+1)]

可以做成函数

出0入16汤圆

发表于 2020-3-17 21:16:06 | 显示全部楼层
自己写个函数不就可以了么,难道你想修改这个自带的函数?没意义啊

出0入25汤圆

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

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

出0入0汤圆

发表于 2020-3-18 08:52:56 | 显示全部楼层
hxl_led 发表于 2020-3-17 23:17
谢谢,我就是这样做的,只是觉得不自然哈

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

出0入0汤圆

发表于 2020-3-18 19:15:47 | 显示全部楼层
hxl_led 发表于 2020-3-17 23:17
谢谢,我就是这样做的,只是觉得不自然哈

i7=0
i6=1
...
...
i1=6
i0=7
a = C[i7:i6+1]
a = C[i3:i0+1]
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 20:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表