社区
非技术区
帖子详情
怎样编程实现16进制数转10进制数?
freechopsticks
2005-10-23 05:55:16
我想请问的是,若用一个函数实现这个功能,是不是将16进制的数字作为输入,再返回相应的10进制值?
另外,16进制数在程序中如何表示呢,是用一个数组还是一个常量字符串呢?
函数的声明可不可以这么写:
int HexToDec(const char *pValue);?
...全文
194
2
打赏
收藏
怎样编程实现16进制数转10进制数?
我想请问的是,若用一个函数实现这个功能,是不是将16进制的数字作为输入,再返回相应的10进制值? 另外,16进制数在程序中如何表示呢,是用一个数组还是一个常量字符串呢? 函数的声明可不可以这么写: int HexToDec(const char *pValue);?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wxyeeis
2005-10-24
打赏
举报
回复
good
llf_hust
2005-10-23
打赏
举报
回复
//进制转换的辅助函数(helper)
//将一个字符转换成相应的十进制数字,以进行十进制运算
int Algorithms::ToInt(const char& ch)
{
if(ch >= '0' && ch <= '9')
{
return ch - '0';
}
else if(ch > '9' && ch < 'g')
{
return tolower(ch) - 'a' + 10;
}
else
{
return -1;
}
}
//上面函数的逆过程
char Algorithms::ToChar(const int& i)
{
if(i >= 0 && i <= 9)
{
return (char)(i + '0');
}
else
{
return (char)(i - 10 + 'a');
}
}
//实现进制转换,从N进制转换到M进制
//实现思想:转换成为熟悉的十进制数
//N进制的数XkXk-1...X2X1X0转换成十进制数的方法为:
//temp = X0 * N^0 + X1 * N^1 + ...
void Algorithms::Tran()
{
string param = "";//用于存放用户输入的数
string cM = "";
string cN = "";
int M = 0;//目的基数
int N = 0;//原基数
char ch = '\0';
string s= "";//用于存放结果
int temp= 0;//存放十进制数
int length= 0;
int j= 0;
int other= 0;
int i= 0;
do
{
cout<<"请输入一个整数和他的基数以及要转换的基数:"<<endl;
cin>>param>>cN>>cM;
length =param.size();
N = atoi(cN.c_str());
M = atoi(cM.c_str());
if(N < 2 || M < 2 || N > 16 || M > 16)
{
cout<<"基数错误!"<<endl;
goto exit;
}//基数错误
temp = 0;
for(i = 0; i < length; i++)
{
j = length - 1 - i;
other = Algorithms::ToInt(param[i]);//将字符转化成数
if(other >= N || other == -1)
{
cout<<"数字必须小于基数!"<<endl;
goto exit;
}
temp += other * pow(N, j);//将N进制数转换成十进制数的核心技术
}
s.erase(s.begin(), s.end());//结果容器清零
while(temp != 0)
{
s += (Algorithms::ToChar(temp % M));//将十进制数转换成M进制数的核心技术
temp = temp / M;
}
for(i = s.length() - 1; i >= 0; i--)
{
cout<<s[i];
}//用于输出
cout<<endl;
exit:cout<<"继续?(y/n)";
cin>>ch;
}while(tolower(ch) == 'y');//继续与否
}
单片机
16进制
转
10进制
数
本文主要讲了单片机
16进制
转
10进制
数
,下面一起来学习一下
16进制
转
10进制
例程.rar
16进制
转
10进制
例程.rar
C#
16进制
转换
10进制
在C#中可以对整型运算对象按位进行逻辑运算,同时也可以
实现
C#
16进制
转换
10进制
,C#
10进制
转换2进制等功能。
16进制
与
10进制
相互转换c++代码
16进制
与
10进制
相互转换的代码,10转
16进制
,16转
10进制
,包含源文件与头文件,直接移植后可以使用。
QT 收到下位机
16进制
数
转
换字符串显示
QT 收到下位机
16进制
数
转
换字符串显示,绝对可靠 简单易懂。
非技术区
15,447
社区成员
58,120
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章