一个由两个字节组成的16位的二进数,最高位为符号位,规定负数用其补码 ,
pVal[1]高字节 pVal[0] 低字节 要得到这个16位的二进制数该怎么转换?
 
short CMainFrame::Get2RealVal(BYTE* pVal)
{
short Val=0 ; if(pVal[1]&0x80==0)
{
Val = pVal[1]*256 + pVal[0] ;
}
else
{
Val = pVal[1]*256 + pVal[0] ;
Val = Val^0xffff + 1 ;
}

return Val ;
} 这么写有问题吗?