下面是24位有符号数转化位32位有符号数( c语言实现)
由于正数不需要处理。因此只需要判断负数即可,代码如下
if(dat&0x00800000)// 判断是负数 最高位24位是符号位
{
dat=-(((~dat)&0x007FFFFF) + 1);// 补码变源码
}
此种情况常出现在AD采集情况下。例如 CS1237的数据采集时就是需要进行数据转换。
特此记录
anlog
2022年3月9日
下面是24位有符号数转化位32位有符号数( c语言实现)
由于正数不需要处理。因此只需要判断负数即可,代码如下
if(dat&0x00800000)// 判断是负数 最高位24位是符号位
{
dat=-(((~dat)&0x007FFFFF) + 1);// 补码变源码
}
此种情况常出现在AD采集情况下。例如 CS1237的数据采集时就是需要进行数据转换。
特此记录
anlog
2022年3月9日