c语言16进制转uint64,CString::Format格式化64位16进制格式&&CString格式化64位整数注意事项...

之前使用的CString::Format都是对32位的整数进行格式化,今天代码中需要将一个64位的整数格式化成16进制,找了好一会儿才找到方法,这里分享一下。

Format格式化64位16进制

UINT64 m_u64MaxAddress=0x000000000055E720;//随便一个64位的整数

CString szTemp;

//其中016表示格式化后长度为16个字符。不足的部分使用0填充

//I64表示64位,X表示16进制大写

szTemp.Format(_T("%016I64X"),m_u64MaxAddress);

格式化后显示的效果如图所示。

e2b8cd267bd15915658d15c89597f95b.png

Format格式化64位数据注意的问题

Format在格式化数据的时候要注意格式应当与数据一一对应,今天我就遇到了一个错误,如下所示。

CString szTemp;

//其中u64A是一个64位的数,u32B是一个32位的数

szTemp.Format(_T("0x%08X,0x%08X"),u64A,u32B);

然后由于第一个u64A与前面的格式不一致,u64A值格式化了低32位,而高位被残留,导致了后面的U32B在格式化的时候,直接使用的是前面残留的数据,因此在一次格式化中应当注意数据的格式与数据尺寸对应的关系。

当然如果不在一次Format中格式化多个数据是不会出现这种问题的。

扫码领个红包作为打赏吧~~

(余额宝支付时可抵现)

喜欢 (2)or分享 (0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值