经典案例--十六进制转换为十进制
来源:互联网 发布:微信跳淘宝链接 编辑:程序博客网 时间:2024/05/24 06:10
1、方法一 用一级指针
#include <stdio.h>#include <string.h>#include <stdlib.h>int convert(char *myp, int mylen, int *Poutput) { int i = 0; char *pstart = myp + 1; char *Pstop = myp + mylen - 1; int ant = 0; int hex = 1; if(Pstop == NULL ) { return -1; } if(myp == NULL) { return -1; } while(Pstop > pstart) { for(i = 0; i < mylen - 2; i++) { if(*Pstop >= 'A' && *Pstop <= 'F') { ant = ant + (*Pstop - 'A' + 10) * hex; } else { ant = ant + (*Pstop - '0') * hex; } Pstop --; hex = hex * 16; } } *Poutput = ant; return 0;}int main() { char buf1[10]; int output = 0; int len = 0; int ret = 0; scanf("%s",buf1); len = strlen(buf1); ret = convert(buf1,len,&output); if(ret != 0) { printf("func convert() error!"); return ret; } printf("output:%d \n",output); return 0;}
2、方法二 用二级指针
#include <stdio.h>#include <string.h>#include <stdlib.h>int convert(char *myp, int mylen, int **Poutput) { int i = 0; char *pstart = myp + 1; char *Pstop = myp + mylen - 1; int ant = 0; int hex = 1; int *tmp = NULL; tmp = (int *)malloc(10); if(Pstop == NULL ) { return -1; } if(myp == NULL) { return -1; } while(Pstop > pstart) { for(i = 0; i < mylen - 2; i++) { if(*Pstop >= 'A' && *Pstop <= 'F') { ant = ant + (*Pstop - 'A' + 10) * hex; } else { ant = ant + (*Pstop - '0') * hex; } Pstop --; hex = hex * 16; } } tmp = &ant; *Poutput = tmp; return 0;}int main() { char buf1[10]; int *output = NULL; int len = 0; int ret = 0; scanf("%s",buf1); len = strlen(buf1); ret = convert(buf1,len,&output); if(ret != 0) { printf("func convert() error!"); return ret; } printf("output:%d \n",*output); return 0;}
阅读全文
0 0
- 经典案例--十六进制转换为十进制
- 十进制转换为十六进制
- 十六进制转换为十进制
- 十进制转换为十六进制
- 十进制转换为十六进制
- 十六进制转换为十进制
- 十六进制转换为十进制
- 十六进制转换为十进制
- 十进制转换为十六进制
- 十进制转换为十六进制
- 十六进制转换为十进制
- 十六进制转换为十进制
- 十六进制转换为十进制
- 十进制转换为十六进制
- 十进制转换为十六进制
- 十六进制转换为十进制
- 十进制转换为十六进制
- 十进制转换为十六进制
- 你所不知道的RXJava2.0
- 高阶篇:5.2.2)6σ公差分析法(6σ)
- Vim的Buffer/缓冲区,文件
- mysql集群及mycat搭建培训笔记
- Oracle 导入、导出命令(imp/exp)
- 经典案例--十六进制转换为十进制
- 11:大整数减法
- Visual Studio2017数据库架构比较
- 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( )?
- spring boot的quartz的配置方式
- MySQL
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)
- 将一个文件夹中的图片移动到另一个文件夹,并重命名
- 头条校招手串