不要直接用iomanip.h库文件。C++编程
一楼回答的好复杂,能不能简单点,只是刚开始学C++,这个问题也是基础知识里面的问题,貌似只允许用iostream.h库文件。
写出一个函数,要求将输入的十六进制数转换成十进制数。要求函数的形参用引用。
答案:1 悬赏:20 手机版
解决时间 2021-03-16 12:11
- 提问者网友:且恨且铭记
- 2021-03-16 04:16
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-03-16 05:42
#include <iostream>
#include <cmath>
using namespace std;
void Hexade2De(char* T)
{
double iResult=0;
int Length=0;
while (T[Length]) Length++;
for (int i=0;i<Length;i++)
if (T[i]>='0' && T[i]<='9') //Process number from 0 to 9
iResult+=pow(16.0,Length-i-1)*(T[i]-'0');
else if (T[i]>='A' && T[i]<='F') //Process number from A to F
iResult+=pow(16.0,Length-i-1)*(T[i]-'A'+10);
else//Process exception
{
cout<<"Illegal Input!"<<endl;
exit(0);
}
cout<<iResult<<endl;
}
main()
{
char*s="1234F";
Hexade2De(s);
}
#include <cmath>
using namespace std;
void Hexade2De(char* T)
{
double iResult=0;
int Length=0;
while (T[Length]) Length++;
for (int i=0;i<Length;i++)
if (T[i]>='0' && T[i]<='9') //Process number from 0 to 9
iResult+=pow(16.0,Length-i-1)*(T[i]-'0');
else if (T[i]>='A' && T[i]<='F') //Process number from A to F
iResult+=pow(16.0,Length-i-1)*(T[i]-'A'+10);
else//Process exception
{
cout<<"Illegal Input!"<<endl;
exit(0);
}
cout<<iResult<<endl;
}
main()
{
char*s="1234F";
Hexade2De(s);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯