- 在utils.h和utils.c中完成16进制字符'0'-'9','A'-'F','a'-'f'与十六进制数据0-15的转换功能(10’):
int Hex2Char(unsigned int fromi,unsigned char * toc);
int Char2Hex(unsigned char fromc,unsigned int * toi);
- 并写出测试代码测试上述函数(不能与下面代码一样),比如:(10’)
主函数main.c
#include <stdio.h>
#include "utils.h"
void main(){
char c1 ='E',c2;
int i1 = 8,i2;
i2 = Char2Hex(c1);
c2 = Hex2Char(i1);
printf("16进制字符%c经过转化,对应的16进制数字是%d\n",c1,i2);
printf("16进制数据%d经过转化,对应的16进制字符是%c\n",i1,c2);
}
头文件utils.h
#ifndef _UTILS_H_
#define _UTILS_H_
char Hex2Char(int i);
int Char2Hex(unsigned char fromc,unsigned int * toi)
#endif
~
utils.c
#include <stdio.h>
#include <string.h>
#include "utils.h"
char Hex2Char(int i){
if(i>=0 && i<= 9)
return i + 0x30;
// return i + '0'
if(i>=10 && i<=15)
return i + 0x37;
//return i + 'A' - 10;
}
int Char2Hex(char x){
if(x>48&&x<58)
return x-48;
if(x>65&&x<75)
return x - 55;
}