数据拼接后高16位减1

CAN接收过来的数据是00 00 80 00,移位拼接后变成了0xffff8000,如图所示:

请大神们帮忙看看是什么原因造成的。