在代码编写中,我们经常需要用到int或者long等类型转化成特殊进制的字符串的问题,当然C里面提供了一些转义符来提供特殊进制输出,如%02x是输出16进制(只是针对一个char,08x是一个int),但是还是需要一个通用的函数来实现一个完整的功能比较好。
例如:转化成2进制
实际上就是每次右移一位,如果8进制就右移3位,16进制就右移4位,当然,mask也要对应更改。
//最左边是第一位
string ChangeTo2Left(unsigned long long flag)
{
string str="";
char temp[2];
unsigned long long mask = 1;
int tempFlag=0;
for(int i=0;i<64;++i)
{
tempFlag=(flag>>i) & mask;
snprintf(temp,sizeof(temp),"%d",tempFlag);
str.append(temp);
}
return str ...64;++i)