请教 Python 二进制转 10 进制

2017-09-29 12:16:10 +08:00
 ericbize
因为原创数据是感应器输出的, 00110101, 这样的东西,然后问题是 用 int ("00110101",2 ) 是可以得到 53 的,但是 用这个转吗方法需要 string 格式,但是 只要 string 就会 把 01 开头的默认为 8 进制。 那么要怎么样才能愉快的转成 10 进制 ?
4599 次点击
所在节点    Python
32 条回复
XIVN1987
2017-09-30 12:29:34 +08:00
@ericbize
那也可以用我说的那种办法

s = ''
for i in range(LEN):
if SENSOR_PIN_LEVEL == 1: s += '1'
else: s += '0'
i = int(s, 2)
XIVN1987
2017-09-30 12:32:51 +08:00
·
s = ''
for i in range(LEN):
if SENSOR_PIN_LEVEL == 1: s += '1'
else: s += '0'
i = int(s, 2)
·
XIVN1987
2017-09-30 12:34:23 +08:00
··· python
s = ''
for i in range(LEN):
if SENSOR_PIN_LEVEL == 1: s += '1'
else: s += '0'
i = int(s, 2)
···
XIVN1987
2017-09-30 12:35:39 +08:00
v2ex 怎么贴代码才能保留空格缩进啊???
msg7086
2017-09-30 13:26:51 +08:00
@XIVN1987 gist。

@ericbize 如果输出的是二进制的话,我猜你需要用 unpack 家族。
xierch
2017-09-30 20:58:24 +08:00
你要直接判断高低电压,一个 bit 一个 bit 地读么…
那你就读到 1 的时候,加一然后向左移一位( n += 1, n << 1 );
读到 0 的时候,直接向左移一位( n << 1 )…
ericbize
2017-10-01 15:26:21 +08:00
@xierch 对啊,一 bit 一 bit 得读出来,然后写入 array 里面,最后计算。
ericbize
2017-10-01 15:27:18 +08:00
@XIVN1987 你的头像想表达什么 ?
ericbize
2017-10-01 15:28:24 +08:00
@msg7086 #13 楼的就可以了~~~
XIVN1987
2017-10-01 18:43:57 +08:00
@ericbize
这不就是 ipython 的图标吗,,表示喜欢 ipython
xierch
2017-10-02 09:27:48 +08:00
@ericbize 所以你直接用一个 int 来存就好了嘛… 边读变转这样…
#13 的还是先转 str 的嘛(
ericbize
2017-10-02 11:28:08 +08:00
@xierch 对啊 13 楼的还是先转 str 但是不知道为什么能得到正确结果哎😓 。

其实寿面还要校验 , 而且我不知道 >> << | 这些怎么用 。 还没学会 ╮(╯▽╰)╭

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/394566

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX