C++中如何以自己设置的位数(长度)显示一个四进制数

C++中如何以自己设置的位数(长度)显示一个四进制数

问题描述:

itoa(int, char* string, int);
我想把一个十进制数转成四进制数,用的以上函数,结果类似于:90 转为 1122

但是我想以6位定长显示四进制数,也就是001122,或者8位显示为00001122

要如何实现呢?


#include<iostream>
#include<iomanip>//包含这个 
using namespace std;
int main()
{
    int i=1122;
    cout<<setw(6) << setfill('0')<<i<<endl;//setw设置长度,setfill设置填充的数字。 
}


 string ito4(int nNum)
 {
     int n1,n2,n3,n4,n5,n6;
     char sArry[7];
     n1 = nNum/1024;
     n2 = (nNum - n1*1024)/256;
     n3 = (nNum - n1*1024 - n2*256)/64;
     n4 = (nNum - n1*1024 - n2*256 - n3*64)/16;
     n5 = (nNum - n1*1024 - n2*256 - n3*64 - n4*16)/4;
     n6 = nNum - n1*1024 - n2*256 - n3*64 - n4*16 - n5*4;
     sprintf(sArry,"%d%d%d%d%d%d",n1,n2,n3,n4,n5,n6);
     return sArry;
 }