今天在执行移位指令时,想得到负数,总是无法得到正确的结果:
value = ord(data[39])+ord(data[40])<<8
查看bin文件,里面的编码是正确的,但是打印输出结果总是错误。
比如data[39]=0xFB, data[40]=0xFF
输出的 value 却是 0x1FA00
变换了几次,低位总是 00
后面终于看到, <<8 没有括号,才想起来 << 的优先级是很低的,加了括号再进行测试,终于输出正确结果了!
今天在执行移位指令时,想得到负数,总是无法得到正确的结果:
value = ord(data[39])+ord(data[40])<<8
查看bin文件,里面的编码是正确的,但是打印输出结果总是错误。
比如data[39]=0xFB, data[40]=0xFF
输出的 value 却是 0x1FA00
变换了几次,低位总是 00
后面终于看到, <<8 没有括号,才想起来 << 的优先级是很低的,加了括号再进行测试,终于输出正确结果了!