数据转换-16进制字符

  1. 在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);
  1. 并写出测试代码测试上述函数(不能与下面代码一样),比如:(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;
}
posted @ 2022-05-12 15:00  20191301  阅读(43)  评论(0编辑  收藏  举报