在linux中将两位char型的数转换为带符号的int型数据。
#include<stdio.h>
int main()
{
unsigned char value[6]={0x53,0x71,0x7f,0xff,0xff,0xff},i;
short value2;
int reallyvalue;
for(i=0;i<3;i++)
{
value2=value[2*i];
value2=(value2<<8)|value[2*i+1];
if(value[2*i]>127)
{
value2=~value2+1;//将数据转换为补码
printf("-");
}
else
{
printf("+");
}
reallyvalue=value2;
printf("%x ",reallyvalue);
}
printf("\n");
}
运行结果: