十六进制转换为十进制(C/C++)
来源:互联网 发布:阿里云备案 固定电话 编辑:程序博客网 时间:2024/05/21 22:52
题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输出该数值的十进制字符串。
输入例子:
0xA
0xA
输出例子:
10
方法1:运用进制之间转换的关系,采用了进栈出栈来处理,比较复杂,主要目的是复习一下数据结构的知识。
//十六进制转换为十进制#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<math.h>#define STACK_INIT_SIZE 20#define STACKINCREMENT 10typedef char ElemType;typedef struct//顺序栈的定义{ElemType *base;ElemType *top;int stackSize;}sqStack;void InitStack(sqStack *s)//初始化栈{s->base = (ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType));if (!s->base){exit(0);}s->top = s->base;s->stackSize = STACK_INIT_SIZE;}void Push(sqStack *s, ElemType e)//压栈{if (s->top - s->base >= s->stackSize){s->base = (ElemType *)realloc(s->base, (s->stackSize + STACKINCREMENT)*sizeof(ElemType));if (!s->base){exit(0);}s->top = s->base + s->stackSize;s->stackSize += STACKINCREMENT;}*(s->top) = e;s->top++;}void Pop(sqStack *s, ElemType *e){if (s->top == s->base){return;}*e = *--(s->top);}int StackLen(sqStack s)//不作修改,传入结构即可,不需传入指针{return (s.top - s.base);//得到栈中元素的个数}int main(){ElemType c;while(scanf("%c", &c)){sqStack s;int len, i, sum = 0;InitStack(&s);//scanf("%c", &c);while (c != '\n'){Push(&s, c);scanf("%c", &c);}len = StackLen(s);for (i = 0; i < len - 2; i++){Pop(&s, &c);if (c >= 48 && c <= 57)c = c - 48;else if (c >= 65 && c <= 70)c = c - 55;else if (c >= 97 && c <= 102)c = c - 87;elseprintf("%s\n", "非法字符");sum = sum + c * pow(16, i);}printf("%d\n", sum);}system("pause");return 0;}
方法2:在网上看到的一个技巧运用,采用输入输出流的方法,很巧妙
#include<iostream>using namespace std;int main(){ int a; while(cin>>hex>>a) cout<<a<<endl;}
阅读全文
0 0
- 十六进制转换为十进制(C/C++)
- 十六进制数转换为十进制-c语言
- c语言十进制数转换为二、十六进制数
- c语言编程 把十进制转换为十六进制
- 十进制转换为十六进制
- 十六进制转换为十进制
- 十进制转换为十六进制
- 十进制转换为十六进制
- 十六进制转换为十进制
- 十六进制转换为十进制
- 十六进制转换为十进制
- 十进制转换为十六进制
- 十进制转换为十六进制
- 十六进制转换为十进制
- 十六进制转换为十进制
- 十六进制转换为十进制
- 十进制转换为十六进制
- 十进制转换为十六进制
- Jeecg框架入门
- Android WebView 实现缓存网页数据
- android 7.0系统解决拍照的问题android.os.FileUriExposedException:
- 1230: 矩阵乘法
- 07_流程控制
- 十六进制转换为十进制(C/C++)
- Mac 下安装TensorFlow出现权限不足解决方案
- 阿里架构之旅(二)——Dubbo解析
- Linux 服务器运行监控软件 Monitorix install
- 聚合支付是下一个财富蓝海!
- doT模板引擎
- 【转自Oracle官方技术博客】系统内存耗尽的案例分析
- PS如何将图片截取自己想要的形状
- c# 深入get与set的详解