华为研发笔试(十六进制转10进制)
2018-03-15 22:16
337 查看
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:输入一个十六进制的数值字符串。
输出描述:输出该数值的十进制字符串。
输入例子1:
输出例子1:
#include<string>
#include<math.h>
using namespace std;
int main()
{
string in;
while (cin >> in){
string ox = "123456789ABCDEF";
double out = 0;
int len = in.length();
for (int i = len - 1; i >=2; i--){
int index = ox.find(in[i]);
double m = pow(16, len -1- i);
out += m* (index + 1);
}
cout << out << endl;
}
return 0;
}注意:
1、if for 等后面括号里面的内容一定要看好,不能写错,i--不能写成i++
2、进制转换,字符串与整数的转换再看看int hex_char_value(char c)
{
if(c >= '0' && c <= '9')
return c - '0';
else if(c >= 'a' && c <= 'f')
return (c - 'a' + 10);
else if(c >= 'A' && c <= 'F')
return (c - 'A' + 10);
assert(0);
return 0;
}
int hex_to_decimal(const char* szHex, int len)
{
int result = 0;
for(int i = 0; i <
aeca
len; i++)
{
result += (int)pow((float)16, (int)len-i-1) * hex_char_value(szHex[i]);
}
return result;
}
输入描述:输入一个十六进制的数值字符串。
输出描述:输出该数值的十进制字符串。
输入例子1:
0xA
输出例子1:
10#include<iostream>
#include<string>
#include<math.h>
using namespace std;
int main()
{
string in;
while (cin >> in){
string ox = "123456789ABCDEF";
double out = 0;
int len = in.length();
for (int i = len - 1; i >=2; i--){
int index = ox.find(in[i]);
double m = pow(16, len -1- i);
out += m* (index + 1);
}
cout << out << endl;
}
return 0;
}注意:
1、if for 等后面括号里面的内容一定要看好,不能写错,i--不能写成i++
2、进制转换,字符串与整数的转换再看看int hex_char_value(char c)
{
if(c >= '0' && c <= '9')
return c - '0';
else if(c >= 'a' && c <= 'f')
return (c - 'a' + 10);
else if(c >= 'A' && c <= 'F')
return (c - 'A' + 10);
assert(0);
return 0;
}
int hex_to_decimal(const char* szHex, int len)
{
int result = 0;
for(int i = 0; i <
aeca
len; i++)
{
result += (int)pow((float)16, (int)len-i-1) * hex_char_value(szHex[i]);
}
return result;
}
相关文章推荐
- 华为研发笔试(随机数查重删除并排序)
- 华为机试 - 9进制和11进制转10进制
- 华为:十六进制转换成十进制
- 进制转换,16到10,10进制到12进制_华为SO挑战赛试题2015年8月
- 线性表的长度为10,在最坏情况下,冒泡排序需要比较次数为()----腾讯2016研发工程师在线模拟笔试题
- 华为是怎样研发的(10)——知识管理
- 7进制字符串转为10进制的int类型数字(H3C笔试题)
- 华为2018校招研发笔试编程题总结
- 10进制转16进制,16进制转10进制,随机出一个6位十六进制颜色值
- 华为机试—“17进制”转“10进制”
- 华为研发工程师编程题:进制转换 [python]
- C/C++: 十六进制转10进制源码
- 2009年华为软件研发一笔试题
- 十六进制转10进制
- 1715 Hexadecimal Numbers 给出十六进制系统,每一个16进制的数对应于一个10进制的数,16进制的数最长8位,然后按10进制从大到小排序。 首位不能为零。 给出n,要求第n大的16进制数。
- C/C++: 十六进制转10进制源码
- C++十六进制字符串转10进制
- 公司笔试题——统计10进制数中的二进制值有多少个1
- 华为笔试题10
- 华为面试题 将10进制数字转化为26进制用A-Z来表示