我有一个微控制器从HTTP API返回这样的状态响应:
<response><BS>026219AAF80F440206025019AAF816A944274480</BS></response>
Run Code Online (Sandbox Code Playgroud)
在这种情况下80,最后两个字符表示我需要转换为其二进制位的十六进制值10000000.每个位都是一个标志,对应于该硬件上的状态.
为了让我检查每一个8位,我需要取字符串80(整个响应是一个字符串,我只是抓住最后2个字符)并将其转换为二进制的字符串表示,10000000以便我可以检查每个8单独的字符.
最好的方法是什么?我想用Python或Ruby来做,但我很高兴学习我想要做的一般技术,然后弄明白.
注意:我(显然)没有CS背景,所以这对我来说很陌生.我可能会使用错误的命名法.请随意纠正我; 我希望我得到了我正在寻找的要点.
在Ruby中:
yourbits = "026219AAF80F440206025019AAF816A944274480"[-2,2].to_i(16).to_s(2)
=> "10000000"
puts yourbits
10000000
=> nil
Run Code Online (Sandbox Code Playgroud)
解释每个步骤 - 首先,将字符串切片以获取最后2个字符:
"026219AAF80F440206025019AAF816A944274480"[-2,2]
=> '80'
Run Code Online (Sandbox Code Playgroud)
将其转换为整数:
"80".to_i(16)
=> 128
Run Code Online (Sandbox Code Playgroud)
回到字符串againg,以二进制表示:
128.to_s(2)
=> '10000000'
Run Code Online (Sandbox Code Playgroud)
可能有更好(或更少混淆)的方式,但我现在无法想象它.
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |