用于modbus传递负数的补码函数

/*

*/
uint16_t int2uint16(int16_t v)
{
    uint16_t ret;
    uint16_t t;
    if(v<0)
    {
        t = v*-1;
        ret = 0xffff -t +1;
    }else{
        ret = v;
    }
    
    
    return ret;
}
/*
if (i>127)
// {
// i=i-256;
// }
*/
int16_t uint2int(uint16_t v)
{
    int16_t ret;
    if(v > 32767){
        ret = v-65536;
    }else{
        ret = v;
    }
    return ret;
}

 

发表评论