在使用ti的adc芯片ads1259时,芯片是24为数据格式保存的,其中最高位是符号位,因此可以理解为是有符号数据,但是在嵌入式系统中,没有直接24位的变量,因此使用32的无符号先保存24位的数据. 如果最高位不是1,那么很简单,直接乘以lsb对应的电压,即可得到真实的电压值. 如果最高位1,说明是有符号的,因此,我们用无符号的32位保存的时候需要进行转换,其实,学过计算机基础的就知道补码的原理,在ads1259中,0xffffff是最小值-1,0x800000是负的最大值(这里说的是绝对值).