CString CGetDlg::GetCharVal(char val)
{ CString ff;
ff.Format("%X",val);
return ff
}
以上代码在得到ascill字符的ascill码时,多数正确,但如应返回BF 或B0的时候,前面却有一大堆FFFFFF。怎么回事
因为 char 只有一个字节 8 个二进制位 ,最高位为符号位 ,为1时 ,表示负数 ,所以它的表示范围在 -127 至 128之间 ,所以当val大于128时转换结果就不是你要的了。可以用成无符号的,如此,范围在0 到 255之间。
CString CGetDlg::GetCharVal(unsigned char val)
{ CString ff;
ff.Format("%X",val);
return ff
}