非淡泊无以明志,非宁静无以致远。这篇文章主要讲述十六进制转十进制C++算法示例相关的知识,希望能为你提供帮助。
问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535
解决方法:
其实这个问题并不难,但就是过不了测评,出现了以下几个问题,下面上代码:
#include #include#include< string.h> int main(){char num[8]; long long sum,i; // 知识点 ① int整型范围太小,要用longlonggets(num); sum = 0; int len = strlen(num); // 知识点 ② 字符串的长度,头文件“ string.h” for(i=0; num[i]!=‘ \0‘ ; i++){switch(num[i]){case ‘ A‘ :sum += 10*pow(16,len - i -1); // 知识点 ③ 次方数!!!break; case ‘ B‘ :sum += 11*pow(16,len - i - 1) ; break; case ‘ C‘ :sum += 12*pow(16,len - i - 1); break; case ‘ D‘ :sum += 13*pow(16,len - i - 1); break; case ‘ E‘ :sum += 14*pow(16,len - i - 1); break; case ‘ F‘ :sum += 15*pow(16,len - i - 1); break; default:sum += (num[i]-48)*pow(16,len - i - 1); break; }}printf(" %I64d" ,sum); // 注意输出格式return 0; }
【十六进制转十进制C++算法示例】
推荐阅读
- 推荐--国内常用镜像站
- 使用git和github上传本地项目的方法
- jquery data方法取值与js attr取值的区别
- 迷宫问题 bfs
- 北卡密信,互联网通信安全专家
- Android之各个版本之间的变化
- 高并发下的批量处理与单个处理(利用jdk8新特性处理,提高性能)
- 一个博文引起代码优化的思路
- 一道短小精悍的JS小题目