C++使数字以十六进制显示

1 c++ hex

我想让一个数字出现在十六进制字母表中,但我不知道如何.

例如,我使用数字255.我希望数字显示为"FF FF",但它显示为"15 15"

number是我想要转换的数字

base是所需的字母(bin,dec,oct,hex)

str是带数字的表

数字是我有多少位数

# include <iostream>
using namespace std;
class Number
{
    private:
        int number; 
        int base;
        int str[80];
        int digits;
        void    convert();

    public:
        Number(int n);
        Number(int n,int b);
Run Code Online (Sandbox Code Playgroud)

printNumber打印数字

        void    printNumber();
};
Run Code Online (Sandbox Code Playgroud)

convert是转换数字的函数

void    Number::convert()
{
    int icount=0;
    int x=number;
    while(x!=0)
    {
        int m=x % base;
        x=x/base;
        str[icount]=m;
        icount=icount+1;
    }
Run Code Online (Sandbox Code Playgroud)

数字计算我拥有的位数

    digits=icount;
}
Run Code Online (Sandbox Code Playgroud)

此函数用作基数dec

 Number::Number(int n)
{
    number=n;
    base=10;
    convert();
}
Run Code Online (Sandbox Code Playgroud)

此函数使用整数b作为基数

Number::Number(int n,int b)
 {
    number=n;
    base=b;
    convert();
 }

void    Number::printNumber()
{
    int i;
    for(i=digits-1;i>=0;i--)
      cout<<str[i]<<" ";
     cout<<endl;
}


int main()
{
    Number n1(255);
    Number n2(254,16);
    n1.printNumber();
    n2.printNumber();
    std::cout << "Press ENTER to continue...";
    std::cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

clc*_*cto 5

#include <iomanip>
#include <iostream>

std::cout << std::hex << number;
Run Code Online (Sandbox Code Playgroud)