将16进制转换成指定格式化的字符串?解决办法

将16进制转换成指定格式化的字符串?
unsigned __int64 nNum1;
nNum = 0x000000000000000f;
Cstring sNum = _T("");
sNum.Format(_T("0x%I64"), nNum1);

得到的结果是sNum :0xf

怎样处理才能使sNum为 0x000000000000000f ???




------解决方案--------------------
C/C++ code
unsigned __int64 nNum1;
nNum1 = 0x000000000000000fi64u;
CString sNum = _T("");
sNum.Format(_T("0x%016I64x"), nNum1);