在 C++ 中将十进制转换为十六进制
Converts Decimal To Hexadecimal In C++
昨天写了一个十进制转十六进制的程序。
但我不满足我的代码,因为我认为我的代码需要其他东西。
我想知道这个转换的另一种解决方案。(例如,使用商和余数,使用函数或其他东西)
你能帮帮我吗?
//真对不起我的英文水平
这是我的代码,
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
char ch[17] = "0123456789ABCDEF";
int power,num;
cout << "Enter A Number: ";
cin >> num;
cout << "Hexadecimal Number: ";
//16^1to16^10 but you can find as you want eg-to 16^15...
for(int i=1;i<11;i++)
{
power = pow(16,i);
if(power > num)
{
for(int k=0;k<i;k++) //for hex num//if i=3, there will be two hex
{
power = pow(16,(i-1)-k);
for(int j=15;j>=0;j--)
{
power *= j;
if(power<=num)
{
cout << ch[j];
num = num-power;
break;
}
power = pow(16,(i-1)-k);
}
}
break;
}
}
}
你可以从十进制到十六进制
std::stringstream ss;
ss<< std::hex << decimal_value; // int decimal_value
std::string res ( ss.str() );
std::cout << res;
来自这个topic
之前一定要搜索一下。
昨天写了一个十进制转十六进制的程序。
但我不满足我的代码,因为我认为我的代码需要其他东西。 我想知道这个转换的另一种解决方案。(例如,使用商和余数,使用函数或其他东西)
你能帮帮我吗?
//真对不起我的英文水平
这是我的代码,
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
char ch[17] = "0123456789ABCDEF";
int power,num;
cout << "Enter A Number: ";
cin >> num;
cout << "Hexadecimal Number: ";
//16^1to16^10 but you can find as you want eg-to 16^15...
for(int i=1;i<11;i++)
{
power = pow(16,i);
if(power > num)
{
for(int k=0;k<i;k++) //for hex num//if i=3, there will be two hex
{
power = pow(16,(i-1)-k);
for(int j=15;j>=0;j--)
{
power *= j;
if(power<=num)
{
cout << ch[j];
num = num-power;
break;
}
power = pow(16,(i-1)-k);
}
}
break;
}
}
}
你可以从十进制到十六进制
std::stringstream ss;
ss<< std::hex << decimal_value; // int decimal_value
std::string res ( ss.str() );
std::cout << res;
来自这个topic 之前一定要搜索一下。