擅长:python、mysql、java
<p>关键是将整数转换成二进制,最简单的方法是使用内置的<a href="http://docs.python.org/2/library/functions.html#bin" rel="nofollow">^{<cd1>}</a>。你知道吗</p>
<p>从那里,迭代二进制数中的每一位,然后将其转换为索引的数字。由于二进制数首先是最重要的位,所以需要按相反的顺序迭代(<code>x[::-1]</code>)</p>
<pre><code>>>> for i,x in enumerate(bin(8)[:1:-1]):
... print "Relay ",i+1," is ",['off','on'][int(x)]
...
Relay 1 is off
Relay 2 is off
Relay 3 is off
Relay 4 is on
</code></pre>
<p>您可以将其打包为如下函数:</p>
<pre><code># Returns an array, with 'True' if the relay is 'on', false otherwise.
def relays(in):
return [i=='1' for i in enumerate(bin(in)[:1:-1]]
</code></pre>
<p>然后就变成了一个问题,要么调用255次来生成XML(这是一个令人困惑的想法),要么使用它来确定中继的状态并在此基础上改变逻辑。你知道吗</p>