我想让一个数字出现在十六进制字母表中,但我不知道如何.
例如,我使用数字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)
#include <iomanip>
#include <iostream>
std::cout << std::hex << number;
Run Code Online (Sandbox Code Playgroud)