社区
非技术区
帖子详情
怎样编程实现16进制数转10进制数?
freechopsticks
2005-10-23 05:55:16
我想请问的是,若用一个函数实现这个功能,是不是将16进制的数字作为输入,再返回相应的10进制值?
另外,16进制数在程序中如何表示呢,是用一个数组还是一个常量字符串呢?
函数的声明可不可以这么写:
int HexToDec(const char *pValue);?
...全文
190
2
打赏
收藏
怎样编程实现16进制数转10进制数?
我想请问的是,若用一个函数实现这个功能,是不是将16进制的数字作为输入,再返回相应的10进制值? 另外,16进制数在程序中如何表示呢,是用一个数组还是一个常量字符串呢? 函数的声明可不可以这么写: int HexToDec(const char *pValue);?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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进制
VC代码
VC
编程
实现
16进制
浮点
数
转
换为
10进制
,转换源代码,实验测试代码没有问题。符合IEEE754协议标准。
汇编
实现
键盘输入
10进制
数
转
为
16进制
数
可以连续输入q退出
从键盘输入
10进制
数
将其转为
16进制
数
输出,支持连续输入,以回车键作为
10进制
数
结束标志,输入的不是
数
字输出错误信息,按q退出程序
顺序栈、链栈将
10进制
转为2、8、
16进制
源码
采用C++语言
实现
利用顺序栈、链栈将
10进制
数
转
为2、8、
16进制
数
。 通过本
编程
实例,可以进一步了解到顺序栈和链栈之间区别和联系,体会两者的异同,进一步加深知识印象,是不错的练习素材哦。
16进制
数
据转换
java
编程
,
实现
16进制
和字符串(包括中文)的互相转换
c语言
编程
题:从键盘输入一个十进制
数
,将其转换为二进制、八进制和十六进制
数
,并同时输出。
c语言
编程
题:从键盘输入一个十进制
数
,将其转换为二进制、八进制和十六进制
数
,并同时输出。
非技术区
15,440
社区成员
58,167
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章