今天调试程序的时候,要用无符号整形的位操作来记录座椅的信息,再通过转换为CString发送,结果发现了一点问题。
1.UINT转CString
比如我要发送的信息是1111 1111 1111 1111 1111 1111 1111 1111,在使用CString temp;temp.Format("%d",infor);它打印出来是“-1”,而不是我想要的“4294967295”
到网上一查发现要用;temp.Format("%u",infor);完美解决。
2.
CString转UINT
用atoi(“4294967295”)转出来的值是,3489660927,这是0XCFFFFFFF的值啊。int 的最大值就是3489660927了,
所以又到网上找到方法了。
UINT CString_to_UINT(const CString & value)
{
UINT data=0;
if(value.Find(_T("0x"))==0)
_stscanf_s((LPCTSTR)value,_T("%x"),&data);
else
_stscanf_s((LPCTSTR)value,_T("%d"),&data);
return data;
}
完美解决。