精华内容
下载资源
问答
  • 十六进制转ASCII码

    千次阅读 2019-04-04 21:03:16
    芯片传回来的数据是以十六进制表示的,但是我想要把这十六进制代表的数据通过UART发送到电脑上表示出来,所以最终要求就是将十六进制表示的数据用ASCII码表示传给电脑。 但是所用的单片机又调不出sprintf函数… ...

    记录一下自己在做项目的时候遇到的问题:
    芯片传回来的数据是以十六进制表示的,但是我想要把这十六进制代表的数据通过UART发送到电脑上表示出来,所以最终要求就是将十六进制表示的数据用ASCII码表示传给电脑。
    但是所用的单片机又调不出sprintf函数…
    后面发现从HEX到ASCII很难直接实现,所以便想到:HEX—>BCD,BCD—>ASCII

    //==========================HEX转BCD码=================================
    unsigned int HEX2BCD(unsigned char hex_data)
    {
        unsigned int bcd_data;
        unsigned char temp;
        temp=hex_data%100;
        bcd_data=((unsigned int)hex_data)/100<<8;
        bcd_data=bcd_data|temp/10<<4;
        bcd_data=bcd_data|temp%10;
        return bcd_data;
    }
    //==========================BCD转ASCII码==============================
    const unsigned char bcd2ascii[10]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    void BCD2ASCII(unsigned char *BCD_data,unsigned char *ASCII_data)
    {
        while(*BCD_data)
        {
            unsigned char temp=*BCD_data++;
            unsigned char c;
            c=temp>>4;//取高4位BCD码
            *ASCII_data++=bcd2ascii[c];//先赋值,指针再自增
            c=temp&0x0f;//取低4位BCD码
            *ASCII_data++=bcd2ascii[c];
            //*ASCII_data++=' ';         //每次读完发送一个,号
        }
        //*ASCII_data++='\r';
        //*ASCII_data='\n';              //发送完一次数据打入一个回车符
    }

    要注意的是在进行这样的类似字符串操作时:
    1.指针初始化指向的是一个字符串的首地址!指针指向的变量也要有一定的范围
    2.字符串与字符数组的区别在于字符串最后一位为’\0’,用指针循环while(*p)时判断标志位就为’\0’!字符串赋初值时编译器会给字符串后添加’\0’

    展开全文
  • 分享一个Qt十六进制转十进制转ascii码,最近用的比较多,所以将它写成了内联函数 看代码: //返回16进制数的ascii码值 inline int ServeWidget::changefromHex_to_ascii(QString str) { QString str_hex = str; /...

    分享一个Qt十六进制转十进制转ascii码,最近用的比较多,所以将它写成了内联函数
    看代码:

    //返回16进制数的ascii码值
    inline int ServeWidget::changefromHex_to_ascii(QString str)
    {
        QString str_hex = str;                  //获取十六进制数
        int dec = str_hex.toInt(0,16);          //十六进制转十进制
        char st = dec;                          //十进制数用char类型表示--->必须有此步直接转化不可行
        QString str_ascii = QString(st);        //转化为ASCII值
        int str_int = str_ascii.toInt();        //转化为int值
        return str_int;                         //返回十六进制符号的ascii码值
    }

    ASCII控制字符
    这里写图片描述

    ASCII可显示字符
    这里写图片描述

    16进制转字符串工具网站:https://www.bejson.com/convert/ox2str/

    展开全文
  • 二进制转十六进制ASCII码 因为背不下ASCII码表,所以写了一个转换工具。 C语言版本,由于能力有限,方法比较落后(努力提升中) 先上代码: #include <stdio.h> #define N 1000 int main() { char ...

    二进制转十六进制和ASCII码


    因为背不下ASCII码表,所以写了一个转换工具。

    C语言版本,由于能力有限,方法比较落后(努力提升中)

    先上代码:

    #include <stdio.h>
    #define N 1000
    
    int main()
    {
    	char binStr[N][10];	//用于存放二进制字符串
    	char hexStr[N][4];	//用于存放十六进制字符串
    	int n;
    	
    	while(scanf("%d", &n)!=EOF)
    	{
    		int i,j;
    		
    		for(i = 0; i < n; i++)
    		{
    			scanf("%s", binStr[i]);	//输入,小心别把换行符输进去了……
    		}
    		
    		printf("ASCII: \n	");
    		for(i = 0; i < n; i++)
    		{
    			int p = 1, temp = 0;
    			for(j = 7; j >= 0; j--)	//正着存进去,就倒着加和
    			{
    				temp = (binStr[i][j]-'0')*p + temp;	//运算时换成对应的 整型数值
    				p = p*2;
    			}
    			printf("%c", temp);
    		}
    		printf("\n");
    		
    		for(i = 0; i < n; i++)
    		{
    			int temp1 = 0, temp2 = 0;
    			int p = 1;
    			for(j = 3; j >= 0; j--)	//正着存进去,就倒着加和
    			{
    				temp1 = (binStr[i][j]-'0')*p + temp1;
    				p = p*2;
    			}
    			p = 1;
    			if(temp1<10)
    				hexStr[i][0] = temp1 + '0';
    			else hexStr[i][0] = temp1 % 10 + 'A';
    				//当 temp1大于十需要转换为'A'~'F'
    				
    			for(j = 7; j >= 4; j--)
    			{
    				temp2 = (binStr[i][j]-'0')*p + temp2;
    				p = p*2;
    			}
    			if(temp2<10)
    				hexStr[i][1] = temp2 + '0';
    			else hexStr[i][1] = temp2 % 10 + 'A';
    		}
    		
    		printf("Hex: \n	");
    		for(i = 0; i < n; i++)
    		{
    			for(j = 0; j < 2; j++)
    				printf("%c", hexStr[i][j]);
    			printf(" ");
    		}
    		printf("\n\n");
    	}
    
    	return 0;
    }
    

    输入:

    42
    01100110 01101100 01100001 01100111 01111011 01100011 01100101 00110011 01100101 00110101 00110000 00110010 01100011 00101101 00110100 00111000 01100011 00111001 00101101 00110100 01100100 00110101 00110000 00101101 00111001 00111001 00111001 00110000 00101101 00110101 01100010 00111000 00110001 01100100 01100010 00110110 01100110 01100011 01100010 01100110 00110000 01111101


    运行结果:
    在这里插入图片描述

    展开全文
  • labview实现了十六进制ASCII码的互相转换,亲测可用,简洁方便
  • 十六进制ascii码 C语言实现

    千次阅读 2020-10-27 01:22:18
    十六进制ascii码 C语言实现 1. ascii16进制 /** * func : char_to_hex() * desc : convert ascii to 16 hex * input : ascii * return: hex */ unsigned char char_to_hex(unsigned char chr) { if...

    十六进制与ascii码互转 C语言实现

    1. ascii转16进制

    /**
     * func  : char_to_hex()
     * desc  : convert ascii to 16 hex
     * input : ascii
     * return: hex
     */
    unsigned char char_to_hex(unsigned char chr)
    {
        if((chr>='0')&&(chr<='9'))
            chr = 0x30+(chr-'0');
        else if((chr>='A')&&(chr<='Z'))//capital
            chr = 0x41+(chr - 'A');
        else if((chr>='a')&&(chr<='z'))//little
            chr = 0x61+(chr-'a');
        else
            chr = 0xff;
        return chr;
    }
    

    2.  16进制转ascii

    /**
     * func  :hex_to_char() 
     * desc  :transform hex to ascii 
     * input :hex 
     * return:ascii
     */
    unsigned char hex_to_char(unsigned char hex)
    {
        if((hex>=0x30)&&(hex<=0x39))
            hex = hex-0x30;
        else if((hex>=0x41)&&(hex<=0x5A)) // capital
            hex = 'A' + (hex - 0x41);
        else if((hex>=0x61)&&(hex<=0x7A)) // little case
            hex = 'a' + (hex - 0x61);
        else 
            hex = 0xff;
        return hex;
    }
    

    3. 验证

    int main(void)
    {
    #if 0
        unsigned char chr = 'x';
        unsigned char hex = 0x45;
        unsigned char buff = 0xff;
    
        buff = hex_to_char(hex);
        printf("hex_to_char:%c\n", buff);
        
        buff = char_to_hex(chr);
        printf("0x%02x\n",buff);
    #else
        unsigned char str[] = "hello";
        unsigned char hex[4] = {0x61,0x62,0x41,0x42};
        unsigned char buff[32] = {0};
        int i,len;
    
        len = strlen(str);
        for(i = 0; i < len; i++)
            buff[i] =char_to_hex(str[i]);
        for(i = 0;i < len; i++)
            printf("char_to_hex:0x%02x\n",buff[i]);
    
        for(i = 0; i < 4; i++) 
            buff[i] = hex_to_char(hex[i]);
        buff[4] = '\0';
        printf("hex_to_char:%s\n",buff);
    #endif
        return 0;
    }
    

    执行结果:

     

    展开全文
  • 十六进制转进制ASCII码转换工具,自己开发的自认为比较实用,带源代码
  • 十六进制转ASCII码 unsigned char HexToChar(unsigned char bChar) { if ((bChar >= 0x30) && (bChar <= 0x39)) { bChar -= 0x30; } else if ((bChar >= 0x41) && (bChar <= 0x46)...
  • ASCII码表 ...为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。 八进制 十六进制 八进制 十六进制
  • 1.bin(数字)十进制-》二进制,有0b,用replace('0b','')    eg:>>> print bin(97).replace('0b','') 1100001 2.int(浮点型数字) float-》int  eg:>>> print int(12.3) ...int-》ascii码(即只有8
  • 能将十六进制码转换成对应的ascii码,适用于单片机编程中用到的键盘数据查询,或者串口通信中用到的相关数据转换查询
  • //ASCII码转16进制function strToHexCharCode(str) { if (str === "") { return ""; } else { var hexCharCode = []; hexCharCode.push("0x"); for (var i = 0; i <...
  • 文章链接: https://www.xuebuyuan.com/1990012.html
  • 本资源为十六进制码与ASCII码的相互转换实现,包括两个函数。
  • 十六进制转换成ASCII码并显示

    热门讨论 2010-12-24 19:40:28
    十六进制转换成ASCII码并显示,十六进制转换成ASCII码并显示
  • Python3 进制转换(二进制 十进制 十六进制 ASCII字符串转换) Python3 进制转换 编写Convertor类,用于进制与ASCII字符之间互相转换,便于使用 ASCII码及进制之间转换关系 ASCII码介绍: ASCII 全称为 ( American ...
  • 自己写的用来分析封包用的,输入十六进制回车后可显示对应十进制和Ascii码,用空格分开。不支持小写的十六进制字符,需要的自己加上,我是没用就偷点懒。代码如下: 进制转换类: package com.packet; import ...
  • 用字符表示的十六进制值转化为十进制,ASCII码: bool ok; QStringList list; //初始化list的内容为:list = ("30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "43", "44", "4D", "4E") //初始化...
  • C语言将十六进制数转换为ASCII码

    千次阅读 2021-04-20 10:13:55
    C语言将十六进制数转换为ASCII码 如题,将输入的十六进制数转换成为对应的ASCII码并合并成为一个byte: 例如:86 FF E0 00输入时对应的ASCII命令为: 38 36 20 66 66 20 65 30 20 30 30 0D(归位) 0A(换行) //输入时...
  • 满意答案"#includevoid choose() /*功能:询问是进行数值转换还是转换为十六进制ASCII码*/{char *ask;printf("请教您想进行数值转换还是进行ASCII码转换?(输入\"数值\"或\"字符\")");scanf("%s",ask);switch(ask){...
  • ASCII、BCD转十六进制ASCII转十六进制转换规则BCD十进制、十六进制BCD的优点BCD分类各种BCD的特点转换规则 ASCII十六进制 转换规则 ASCII(American Standard Code for Information Interchange,美国信息...
  • c++ 十六进制转字符串(ASCII码)

    千次阅读 2020-07-28 15:15:28
    在网络通信中经常用到16进制ASCII码字符数组互相转换的功能,完整代码如下: #include <iostream> using namespace std; unsigned int ssstrlen(const char *str) { const char *cp = str; while(*cp++)...
  • ascii码(0-9 A-F)转化成二进制显示 先输入次数(1-9 A-F) 再转换
  • 我用的将16进制文本转换为ascii码的C语言代码。16进制文本复制到文件test.txt中,运行程序,将得到输入。例:运行:./CSTRING test.txt其中,test.txt文件内容为:30:31:32则得到的"Cstring.txt"输入文件中012本程序...
  • 十六进制数的ASCII码转换为十进制数。十六进制数的值域为0~65535,最大转换为五位十进制数。要求将缓冲区的000CH的ASCII码转换为十进制,并将结果显示在屏幕上。 1.程序源码 DATAS SEGMENT XX DW 000CH ;此处输入...
  • 题目:用查表法将一位十六进制数转换为ASCII码,入口参数放在内部RAM 50H中,出口参数在R0中。要求:用汇编语言完成编程(用DB "0","1"......)。悬赏分:0 - 解决时间:2010-1-15 15:52;---------------------------...
  • 16进制转ASCii码

    千次阅读 2018-01-19 19:23:36
    数据转ASCII码函数。。 关于ASCII码的定义请参看度娘。 /* 转ASCII码函数 */ unsigned char CharToHex(unsigned char bHex) { if((bHex >= 0)&&(bHex 9)) { bHex += 0x30; } else if((bHex>=10)&&(bHe
  • 十六进制与ASC转换 程序

    热门讨论 2011-04-02 07:38:20
    可以进行十六进制与ASC的转换,包含程序和源代码,可以很好的运行!
  • ASCII码表(二进制_十进制_十六进制)转换,包含详细的字符
  • 本资源包含该实验需要编制的第三个程序代码十六进制数转换为ASCII码。 本资源只含代码,不含实验报告,如果你需要的是实验报告就不要点开了以免浪费你宝贵的分数。本代码的可靠性极高,与网络上其他来源的实验报告...
  • 二进制,八进制,十六进制,十进制 ASCII码对照表  (2011-05-25 20:27:22) 转载▼ ASCII码表 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,119
精华内容 18,447
关键字:

十六进制转ascii码代码