12bit的图像如何向8bit转化_巧用补码(如何转化器件的补码数据?)

本文探讨了如何简洁地处理补码形式的12bit ADC转换数据,避免复杂的取反加1操作。通过位移操作,可以轻松将24位补码数据转化为32位,保持数据大小不变。这种方法适用于8bit、16bit等不同位宽的数据转换,简化了补码到原码的转换过程。
摘要由CSDN通过智能技术生成

导读:网上关于二进制补码数据的负数都是采用取反+1进行转换,但是真的需要这么麻烦吗?这篇文章将让你真正理解补码!

假设一个 ADC 转换芯片的转化数据为补码形式,24 位精度。最大电压值为 0x7fffff,最小电压值为 0x800000,转化为十进制如下表:

3f20e26964415fb8e3b0e25499029ac4.png

先思考简单的,了解一下什么是补码:

925d9e205e832023a2ac18b0167416ff.png

看 +127 的二进制 0111 1111b,再加 1 为 1000 0000b,马上变成负数最小值 -128。如果把 1000 0000b 看成无符号常数,那么这个数就是 +128。在这个数的基础上加 1,就是 1000 0001b,看成无符号常数就是 129,但是看成有符号常数就是 -127,因为最高位为 1 ,那么必然是负数,不可能是 129。通过分析这些数据,自己也能发现规律。

那么如何将补码转化为我们需要的数据呢?网上很多方法对负数求原码是采用补码取反 + 1 的形式进行转化,但是真的需要这么麻烦吗?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值