今天在网上GET了一个相当棒的存在,"llx"和"I64x",
是一种可以将一个long long长度的十进制整数直接转化为十六进制存于buffer中的方式,
曾经有了解过sscanf和sprintf,但这次这个方式的发现着实非常令人开心,回来再学一次,作为一种技巧好好收着~
P.S. 通过更改x的大小写可以决定十六进制的大写/小写表示哦~
Code:
#include<cmath>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
char buffer[1024];
unsigned long long ull=2222222222222222222;
sprintf (buffer, "%llx", ull);
//sprintf (buffer, "%I64x", ull);
//sprintf (buffer, "%llX", ull);
//sprintf (buffer, "%I64X", ull);
cout<<buffer<<endl;
return 0;
}
前两种输出为:1ed6eb565788e38e
后两种输出为:1ED6EB565788E38E