打印
[应用相关]

求大神解释下这个函数

[复制链接]
614|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cooldog123pp|  楼主 | 2017-7-27 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
s16 Get_acc(short accx)
{
  if(accx & 0x0200)
  {
    accx = (accx-1)^0x03FF;
    accx = -(accx*16);
  }else accx=(accx*16);
  return (accx);
}

个人理解是有符号二进制转16进制但是没想通,求大神解释。
沙发
lxyppc| | 2017-7-27 16:46 | 只看该作者
本帖最后由 lxyppc 于 2017-7-27 17:19 编辑

10位补码有符号数转16位补码有符号数并且乘以16
个人觉得 只需要return ((signed short)(accx*64))/4;就行了

使用特权

评论回复
板凳
文刀飘红| | 2017-7-27 17:29 | 只看该作者
对于这个问题,我手算了一遍,
例如accx为0xAA时,返回0xDA1F;
accx为0x5555时,返回0x5550
这个应该不是一般转换函数,是用在特定场合下的吧?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1804

主题

6315

帖子

29

粉丝