十六进制到10进制转换

简介:

自己感觉要解决的问题点:怎么接收输入的16进制的字符串"解决办法通过判断字符是否‘\n’"

具体看下面代码,不是很好,但是水平有限。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef _SCALECONVERT_
#define _SCALECONVERT_
/*================================ Macros ===================================*/
#define FALSE 0
#define TURE 1
#define MAX_ARRAY 100  //允许接收的最大16进制的字符串
/*============================= Include Files ===============================*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
/*============================= Include Function ===============================*/
 
int  scaleConvert( char  *scaleArray16, int  sizeArray);
 
 
#endif //_SCALECONVERT_
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include"scaleConvert.h"
 
/***********************************************************/
/************函数名:inputAndDetection**********************/
/************入口参数:16进制字符串*************************/
/************返回值:int类型********************************/
/************函数功能:输入十六进制数***********************/
/***********************************************************/
static  int  inputData( char  *scaleArray16)
{
     int  index = 0;
     char  ch = 0;
     if (NULL == scaleArray16)
     {
         return  FALSE;
     }
     printf ( "请输入要转换的16进制数:" );
     while ((ch =  getchar ()) !=  '\n' )
     {
         scaleArray16[index] = ch;
         index++;
     }
     scaleArray16[index] =  '\0' ;
     return  TURE;
}
/***********************************************************/
/************函数名:scaleConvert***************************/
/************入口参数:16进制字符串*************************/
/************返回值:10进制数*******************************/
/************函数功能:将一个16进制字符转换成十进制*********/
/***********************************************************/
static  int  byteScaleConvert( char  oneChar)   
{
     int  returnValue = 0;
     if ((oneChar >=  '0' )&&(oneChar <=  '9' ))
     {
         returnValue = oneChar -  '0' ;
     }
     else  if ((oneChar >=  'a' )&&(oneChar <=  'f' ))
     {
         returnValue = oneChar - 87;
     }
     else  if ((oneChar >=  'A' )&&(oneChar <=  'F' ))
     {
         returnValue = oneChar - 55;
     }
     return  returnValue;
}
/***********************************************************/
/************函数名:scaleConvert***************************/
/************入口参数:16进制字符串*************************/
/************返回值:10进制数*******************************/
/************函数功能:16进制转10进制***********************/
/***********************************************************/
int  scaleConvert( char  *scaleArray16, int  sizeArray)
{
     int  scaleNumber10 = 0;
     int  temp = sizeArray;
     if (NULL == scaleArray16)
     {
         return  FALSE;
     }
     while (sizeArray>1)
     {
         scaleNumber10 += byteScaleConvert(scaleArray16[sizeArray])* pow (16,(temp-sizeArray));
         sizeArray--;
     }
     return  scaleNumber10; //返回的十进制数
}
/***********************************************************/
/************函数名:main***********************************/
/************入口参数:无***********************************/
/************返回值:0**************************************/
/************函数功能:程序的如口***************************/
/**********************************************************/
int  main()
{
     int  index = 0;
     int  sizeArray16 = 0;
     int  scaleNumber10 = 0;
     char  scaleArray16[MAX_ARRAY] = {0};
     inputData(scaleArray16); //输入16进制数
     sizeArray16 =  strlen (scaleArray16)-1; //16进制字符串的长度-1
     scaleNumber10 = scaleConvert(scaleArray16,sizeArray16); //转换
     printf ( "%d" ,scaleNumber10);
     printf ( "\n" );
     system ( "pause" );
     return  0;
}



本文转自 8yi少女的夢 51CTO博客,原文链接:http://blog.51cto.com/zhaoxiaohu/1751012,如需转载请自行联系原作者

相关文章
|
8月前
十进制转二、十六进制
十进制转二、十六进制
22 0
|
3月前
|
机器学习/深度学习
八进制转换为十进制
八进制转换为十进制。
21 0
|
4月前
|
Python
十进制转二进制、八进制、十
十进制转二进制、八进制、十
|
10月前
二进制、八进制、十六进制
二进制、八进制、十六进制
76 0
十进制转换为2进制
十进制转换为2进制
67 0
十进制转换为2进制
|
存储 机器学习/深度学习 算法
C#实现十六进制和十进制相互转换【及不同进制表示】
在程序中,十六进制的表示形式通常为字符串;而十进制则为数字整型(本质的内存存储都是01二进制)。数字的进制表示一般使用的不多,通常最大的需求是进制之间的相互转换。C#中提供了内置的转换方法...
495 0
C#实现十六进制和十进制相互转换【及不同进制表示】
|
机器学习/深度学习
二进制,八进制,十六进制之了解
为了将整数转换为二进制、八进制或十六进制的文本串,可以分别使用bin() ,oct() 或hex() 函数
二进制,八进制,十六进制之了解
|
开发者 Python
二进制转换八进制十六进制以及十进制| 学习笔记
快速学习二进制转换八进制十六进制以及十进制
167 0
二进制转换八进制十六进制以及十进制| 学习笔记
|
机器学习/深度学习 程序员 C++
4、进制(二进制、八进制、十进制、十六进制)
4、进制(二进制、八进制、十进制、十六进制)
289 0
4、进制(二进制、八进制、十进制、十六进制)