首页 > 其他分享 > 数据转换-16进制字符

数据转换-16进制字符

时间:2023-05-24 09:14:14浏览次数:36  
标签:字符 进制 16 int fromi unsigned char Char2Hex Hex2Char

  1. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务

  2. 在附件中的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’)
unsigned char  c;
Hex2Char(1, &c)
//结果:c = '1'
Hex2Char(15, &c)
//结果:c = 'F'
unsigned int i;
Char2Hex('1', &i);
//结果:i = 1
Char2Hex('F', &i);
//结果:i = 15
  1. 提交代码(或代码链接)和运行结果

uitls.h

#ifndef _UTIL_H_
#define _UTIL_H_

//char Hex2Char(int i);
//int Char2Hex(char c);

int Hex2Char(int fromi,char * toc);
int Char2Hex(char fromc,int * toi);

int Bitstr2ByteArr(char * bs,char * ba);
int ByteArr2Bitstr(char * ba,char * bs);

int Int2ByteArr(int i,char * ba);
int ByteArr2Int(char * ba,int * i);

#endif

utils.c

#include<stdio.h>
#include"utils.h"
char Hstr[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int Hex2Char(int fromi,char *toc)
{
    if(fromi>=0&&fromi<=9)
    {*toc= fromi+'0';}
    else if(fromi>=10&&fromi<=15)
    {*toc = fromi+'A'-10;}
    else
    {printf("error");}
    return 0;}
int Char2Hex(char fromc,int *toi)
{
        if(fromc>='0'&& fromc<='9')
        {*toi= fromc-'0';
        }
        else if(fromc>='A'&& fromc<='F')
        {*toi= fromc-'A'+10;}
        else
        {printf("error");}
        return 0;
}

main.c

#include<stdio.h>
#include"utils.h"
int main(){
  int n1,n2;
  char c1,c2;
  printf("请输入一个0~15的数:");
  scanf("%d",&n1);
  Hex2Char(n1,&c1);
  printf("对应的16进制字符是%c\n",c1);
  printf("请输入一个16进制字符:");
  scanf("%s",&c2);
  Char2Hex(c2,&n2);
  printf("%c对应的数是%d\n",c2,n2);
}

运行截图:

标签:字符,进制,16,int,fromi,unsigned,char,Char2Hex,Hex2Char
From: https://www.cnblogs.com/killerqueen4/p/17426983.html

相关文章

  • 2023-05-23:如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等, 那么称 X
    2023-05-23:如果交换字符串X中的两个不同位置的字母,使得它和字符串Y相等,那么称X和Y两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,"tars"和"rats"是相似的(交换0与2的位置);"rats"和"arts"也是相似的,但是"star"不与"tars","rats",或&quo......
  • 2023-05-23:如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等, 那么称 X
    2023-05-23:如果交换字符串X中的两个不同位置的字母,使得它和字符串Y相等,那么称X和Y两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,"tars"和"rats"是相似的(交换0与2的位置);"rats"和"arts"也是相似的,但是"star"不与"tars","rats",或"a......
  • 字符串、列表内置方法和可变类型、不可变类型
    字符串的内置方法1.转换大小写(upper、lower)将字符串中的所有单词转换成大写或者小写,name_str.upper()  将name_str中的字母全转换为大写name_str.lower() 将name_str中的字母全转换为大写例:1name_str="helloword"2res=name_str.upper()3print(res)......
  • 字符编码(笔记整理)
    一、知识储备三大核心硬件所有软件都是运行硬件之上的,与运行软件相关的三大核心硬件为cpu、内存、硬盘,我们需要明确三点软件运行前,软件的代码及其相关数据都是存放于硬盘中的任何软件的启动都是将数据从硬盘中读入内存,然后cpu从内存中取出指令并执行软件运行过程中产生的数......
  • 字符编码和文件操作
    字符编码由于计算机只认识01,字符编码就是我们人看的懂的字符对应机器认识的数字,方便我们与机器交互 1.字符编码的发展史1.一家独大(ASCII码表)最开始计算器是由美国人发明的,争对他们国家的语言发明了一种编码表ASCII码表,ASCII码表内置使用一个字节代表一个字符。需要记忆:A......
  • poj-1693
    //136K 0MS C++#include<cstdio>#include<cstring>structLine{ intbx,ex; intby,ey;};typedefstructLineLine;LinehLine[110];LinevLine[110];intcaseNum;intLineNum;boolinsect(Line&vline,Line&hline){ //pr......
  • html转义代码,v-html 显示原始html字符串
    methods:  htmlEscape(str){   lets="";   if(str.length==0)return"";   s=str.replace(/&/g,"&amp;");   s=s.replace(/</g,"<");   s=s.replace(/>/g,">");......
  • 进制
    对于整数,有四种表示方式二进制(binary):01逢2进一,以0b或者0B开头十进制(Decimal):0~10逢十进一八进制(Octal):0~7逢8进一以数字0开头十六进制(hex):0~9以及A~F以0X开头或者0x开头表示,此时x不区分大小写【二进制】最高位---【符号位】:0表示是正数,1表示是负数【正数】三种形式......
  • python生成13位或16位时间戳以及反向解析时间戳
    importdatetimeimporttimedefget_float_time_stamp():datetime_now=datetime.datetime.now()returndatetime_now.timestamp()defget_time_stamp16():#生成16时间戳eg:1540281250399895-lndatetime_now=datetime.datetime.now()print(datetim......
  • python 基础day09 字符编码
    字符编码前提:字符编码只跟文本数据和字符串有关系,他跟视频文件、音频文件等无关为什么要有字符编码?计算机内部只认识01二进制数据,但是,我们现在在计算机上写的各种各样的字符,为什么都能正常显示?字符编码:它的内部记录着字符和数字之间的对应关系eg:0--->a1---->b00--->aa0......