主动解析下如何提取负数

负数在计算机中存储和传输的是补码,我们只需要通过补码求得原码即可,以下是不同数据长度的负数计算原码的方法

首先应确保数据过来的是小端模式

signed int8

一个signed int8的数据,如果发-1过来,它发送的值其实是255

要判断这个值是不是负数,只要判断这个值是不是大于127即可

如果这个数大于127,就用这个数减去256,就可以得到正确的负数

signed int16

一个signed int16的数据,如果发-1过来,它发送的值其实是65535

要判断这个值是不是负数,只要判断这个值是不是大于32767即可

如果这个数大于32767,就用这个数减去65536,就可以得到正确的负数

signed int32

sint32格式是最简单的,直接用ucopy指令即可

ucopy n0.val,0,4,0