社区
非技术区
帖子详情
怎样编程实现16进制数转10进制数?
freechopsticks
2005-10-23 05:55:16
我想请问的是,若用一个函数实现这个功能,是不是将16进制的数字作为输入,再返回相应的10进制值?
另外,16进制数在程序中如何表示呢,是用一个数组还是一个常量字符串呢?
函数的声明可不可以这么写:
int HexToDec(const char *pValue);?
...全文
193
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进制
例程”很可能包含了若干
编程
示例,展示了如何在不同
编程
语言中
实现
16进制
到
10进制
的转换。通过学习和理解这些例程,开发者可以更好地掌握这个重要的概念,并在实际工作中灵活运用。
C#
16进制
转换
10进制
本文主要讲解如何在C#中
实现
16进制
转换为
10进制
,以及相关的位运算知识。 首先,让我们来看看C#如何进行
16进制
到
10进制
的转换。C#提供了`Convert.ToInt32`方法,它接受一个字符串形式的
数
值和一个表示原
数
值基
数
的...
16进制
与
10进制
相互转换c++代码
除了上述方法,还可以用位运算和算术运算
实现
16进制
到
10进制
的转换,但这通常更复杂,适用于了解底层原理的程序员。 在C++中,
16进制
和
10进制
的转换通常用于处理二进制
数
据、内存表示以及网络通信等领域。例如,...
QT 收到下位机
16进制
数
转
换字符串显示
在QT
编程
中,经常需要处理来自下位机的
数
据,这些
数
据通常是
16进制
格式的。本教程将详细讲解如何将接收到的
16进制
数
值转换为字符串并显示在界面上,确保过程绝对可靠且易于理解。我们将重点讨论与
16进制
数
、字符串...
非技术区
15,447
社区成员
58,120
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章