精华内容
下载资源
问答
  • 十六进制数转换成ascii
    千次阅读
    2021-05-23 00:51:14

    本文收集整理关于十六进制数转换成ascii码的相关议题,使用内容导航快速到达。

    内容导航:

    Q1:一个十六进制数转换成ASCII码的单片机程序

    HASC:MOVA,R0;从R0中取一个16进制(二进制)数(0-F)

    ANLA,#0FH;屏蔽掉高4位

    PUSHACC;4位二进制数入栈

    CLRC;清进(借)位位

    SUBBA,#0AH

    POPACC

    JCLOOP

    ADDA,#07H

    LOOP:ADDA,#30H

    MOVR2,A

    RET

    实验结果:R0中的十六进制数(比如A),转换为ASCII码(41H)送入R2中。刚才回答了,没有了吗?

    Q2:如何用汇编语言把十六进制数1A5F转换成ascii码并显示在屏幕上

    刚好我写了一个,调试都通过可以执行的,。

    .386、.model flat,stdcall

    option casemap:none

    include windows.inc

    include user32.inc

    include kernel32.inc

    includelib user32.lib

    includelib kernel32.lib

    .data

    szCaption db convert num to srting,0

    szResult db 6 dup(0)

    .code

    _Translate proc para1:DWORD,para2:DWORD;定义子函数,para1变量用来放传入的数组,para2用于放编程ASIC后的字符数组LOCAL _iNum;定义零时变量,用于放被除数

    LOCAL _iTemp;定义零时变量,用于存放除数

    LOCAL _szTemp[265]:BYTE

    mov eax,para1;;获取参数para1的值eax寄存器

    mov _iNum,eax;将eax中的值放入零时变量_iNum

    mov _iTemp,10H

    lea ebx,_szTemp

    xor ecx,ecx

    .while _iNum;当被除数不为0时,就一直循环

    xor edx,edx

    mov eax,_iNum;将被除数放入eax寄存器中

    div _iTemp;寄存器eax中的值除以_iTemp,商放入eax中,余数放入dl中

    mov _iNum,eax

    .if dl>9H;当余数大于9时,就转化为相对应的英文字母的ASIC的值

    add dl,37H

    .else

    add dl,30H

    .endif

    mov byte ptr [ebx],dl;把变化后的值放入ebx寄存器中

    inc ebx

    inc ecx

    .endw

    mov eax,para2;将参数para2的地址传给eax寄存器,再讲ecx中的值倒序存入eax寄存器中

    mov byte ptr [eax+ecx],0

    lea ebx,_szTemp

    .repeat

    mov dl,byte ptr [ebx]

    mov byte ptr [eax+ecx-1],dl

    inc ebx

    .untilcxz ;一直循环,直到cx的值=0,每次循环后ecx的值-1、

    ret

    _Translate endp

    start:

    mov eax,1A5FH ;修改这里的数,就能把任意16进制的数转化为ASIC码了

    invoke _Translate,eax,offset szResult

    invoke MessageBox,NULL,offset szResult,offset szCaption,MB_OK

    invoke ExitProcess,0

    end start

    Q3:51单片机 十六进制数与ASCII码间的转换求详解

    这程序的功能就是把一字节十六进制数的低4位转换为一个ASCII码。例如0x0E转换为E、0x08转换为8。

    我估计你就是对内码不太熟悉吧。

    你翻一下ASCII码的内码表,再对照这程序看看,应该就能明白了。

    很好懂的。

    Q4:怎么用单片机编写一段程序将若干十六进制数转换为ASCII码?

    不知你要的是C语言的还是汇编的,都给你吧

    C语言的:

    #include typedef unsigned char uchar;

    #define NUMBER10、

    ucharBufferIn[NUMBER]={0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,0x1a,0x1b};//16进制数存放区

    ucharBufferOut[2*NUMBER];//ASCII码存放区

    //功能:将多字节16进制数转换为ASCII字符

    //入口:x:待转换16进制数,x>=0且x<=F

    //出口:返回转换完成后的ASCII码字符数据,返回0为失败

    ucharGetASCII(uchar x)

    {

    if(x>0x0f)

    {

    return 0;

    }if(x>9)

    {

    return (A+x-10);

    }

    return (0+x);

    }

    //主程序

    voidmain()

    {

    uchar i;

    for(i=0;i{

    BufferOut[i*2] = GetASCII(BufferIn[i]/0x10);

    BufferOut[i*2+1] = GetASCII(BufferIn[i]%0x10);

    }

    while(1);

    }

    汇编的:

    ;说明:LOOP1循环为预设10个16进制数内容的初始化程序,作为示例

    ORG0000H

    LJMPSTART

    ORG0100H

    START:MOVR2,#10;预置10个16进制数

    MOVR0,#20H;16进制数存放起始地址

    MOVA,#12H

    LOOP1:MOV@R0,A

    ADDA,#13H

    INCR0

    DJNZR2,LOOP1;循环10次送10个数

    ;以上至START为初始化内存,预送10个字节的数据

    MOVR0,#20H;16进制数存放起始地址

    MOVR1,#30H;ASCII数存放起始地址

    MOVR2,#10;转换10个字节

    LCALLHEXTOASC;调用转换子程序

    JMP$

    ;=======================================================

    ;HEXTOASC:将多字节16进制数转换为ASCII字符子程序

    ;入口:(R0)=16进制数存放起始地址指针

    ;(R2)=字节数

    ;出口:(R1)=转换完成后的ASC字符存放起始地址指针

    ;算法说明:0~9:(ASCII码为30H~39H)+90H后调整后无变化,结果

    ;为9xH,再加40H为0DxH,调整操作+60H后正好为3xH;

    ;A~F:(ASCII为41H~46H),+90H后为9xH,调整操作+06H后

    ;为01H~06H,再加40H调整后不变,正好为41H~46H;

    ;=======================================================

    HEXTOASC:

    MOVA,@R0

    SWAPA

    ANLA,#0FH;处理高4位

    ADDA,#90H

    DAA

    ADDCA,#40H

    DAA

    MOV@R1,A;保存高4位

    INCR1、MOVA,@R0

    ANLA,#0FH;处理低4位

    ADDA,#90H

    DAA

    ADDCA,#40H

    DAA

    MOV@R1,A;保存低4位

    INCR1;下一个16进制数

    INCR0

    DJNZR2,HEXTOASC

    RET

    END

    更多相关内容
  • 把0到F的ASCII码转换成普通二进制
  • 当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来...
  • 例如我们要将ASCII码的’59’转为十进制的59,请看下面程序 /******************************************************************* 功 能:ASCII转进制 输 入:ASCII字符(参数范围'0'到'9'(即0x30到0x39)) 返...

    大家好,我是Beta,今天给大家分享C语言字符转化方法

    例如我们要将ASCII码的’59’转为十进制的59,请看下面程序

    /*******************************************************************
    功 能:ASCII转十进制
    输 入:ASCII字符(参数范围'0'到'9'(即0x30到0x39))
    返 回:十进制数
    示 例:输入ASCII字符参数'5'和'9'(即0x35和0x39),返回十进制数59
    ********************************************************************/
    uint8_t ACSII_To_DEC(uint8_t aDEC, uint8_t bDEC)
    {
    	uint16_t abDEC;
    	
    	if((aDEC >= '0')&&(aDEC <= '9'))//将字符转化成相应的数字
    		aDEC -= '0';
    		
    	if((bDEC >= '0')&&(bDEC <= '9'))//将字符转化成相应的数字
    		bDEC -= '0';
    
    	abDEC = aDEC * 10 + bDEC;
    	
    	return abDEC;
    }
    

    如果我们要将十六进制的0x18(即十进制的24)转化为ASCII码的’24’(即十六进制0x3234),请看下面程序

    /*******************************************************************
    功 能:十六进制数转ASCII码
    输 入:十六进制数(参数范围0到99(即0x00到0x63))
    返 回:高低位ASCII字符
    示 例:输入参数0x18(即十进制24),返回ASCII码'24'(即0x3234)
    ********************************************************************/
    uint16_t DEC_To_ASCII(int8_t HEX)
    {
    	uint8_t DEC_H, DEC_L;
    	uint16_t ASCII;
    	
    	if((HEX >= 0)&&(HEX <= 99))
    	{
    		DEC_H = (HEX / 10) + '0';
    		DEC_L = (HEX % 10) + '0';
    	
    		ASCII = (DEC_H<<8)|DEC_L;
    	}
    	else if((HEX >= -9)&&(HEX < 0))
    	{
    		DEC_H = '-';
    		DEC_L = -HEX + '0';
    	
    		ASCII = (DEC_H<<8)|DEC_L;
    	}
    	return ASCII;
    }
    
    展开全文
  • 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(换行) //输入时...

    C语言将十六进制数转换为ASCII码

    如题,将输入的十六进制数转换成为对应的ASCII码并合并成为一个byte:
    
    例如:86 FF E0 00输入时对应的ASCII命令为:
    38 36 20 66 66 20 65 30 20 30 30 0D(归位) 0A(换行)   //输入时空格也会转换
    使用C语言在程序中将命令还原为86 FF E0 00,代码如下:
    
    u8 Hex2Char(u8 HByte, u8 LByte) //传入两个十六进制数
    {
       	 u8 trans_data = 0x00;
    	 u8 Hight;
    	 u8 Low;
    	 trans_data = 0;
    	 printf("\n%bx,%bx", HByte, LByte);
    	 if ( (HByte >= 0x41) && (HByte < 0x47) )
    		{
    			Hight = HByte - 0x37; // 0x41 - 0x0a == 0x37
    	    }
    	else if (HByte >= 0x61 && HByte < 0x67)
    		{
    			Hight = HByte - 0x57; // // 0x61 - 0x0a == 0x57
    	    }
    	else if (HByte >= 0x30 && HByte <= 0x39)
    		{
    			Hight = HByte - 0x30;
    	    }
    	else
    		{
    		trans_data = 0xff;
    	    }
    	 //printf("\nHight: %bx", Hight);
    	if ( (LByte >= 0x41) && (LByte < 0x47) )
    		{
    			Low = LByte - 0x37;
    	    }
    	else if (LByte >= 0x61 && LByte< 0x67)
    		{
    			Low = LByte - 0x57;
    	    }
    	else if (LByte >= 0x30 && LByte <= 0x39)
    		{
    			Low = LByte - 0x30;
    	    }
    	else
    		{
    		trans_data = 0xff;
    	    }
    	 //printf("\nLow: %bx", Low);
    	 trans_data = (Hight<<4) | (Low << 0);//高位左移4位,低位不移动,组成一个8位十六进制字符
    	 printf("\n%02bx", trans_data);
    	 Hight = 0; Low = 0;
    	 return trans_data;
    
    }
    

    代码运行结果:
    '#'作为命令结束标志:
    '

    展开全文
  • 今天,我将与您分享一种将Python十六进制整数转换为ASCii编码的字符串的方法,该方法具有很好的参考价值,希望对大家有所帮助. 让我们一起关注小编,看看当使用Pyserial与STM32通信时,我遇到了需要发送一串以Ascii...

    今天,我将与您分享一种将Python十六进制整数转换为ASCii编码的字符串的方法,该方法具有很好的参考价值,希望对大家有所帮助. 让我们一起关注小编,看看

    当使用Pyserial与STM32通信时,我遇到了需要发送一串以Ascii码编码的十六进制整数并将接收到的Ascii码字符串转换为十六进制整数的问题. 在Internet上检查了信息之后,没有一个满足要求,因此,与一家之主一起使用了以下方法.

    环境

    Python2.7 + Binascii模块

    十六进制整数到ASCii编码的字符串

    # -*- coding: utf-8 -*-

    import binascii

    #16进制整数转ASCii编码字符串

    a = 0x665554

    b = hex(a) #转换成相同的字符串即'0x665554'

    b = b[2:] #截取掉'0x'

    c = binascii.a2b_hex(b) #转换成ASCii编码的字符串

    print("a:%x, b:%s,c:%s" %(a,b,c))

    print type(a)

    print type(b)

    print type(c)

    测试结果:

    a:665554, b:665554,c:fUT

    ASCii编码的字符串为十六进制整数

    # -*- coding: utf-8 -*-

    import binascii

    c = 'fUT'

    e = 0 #暂存结果

    for i in c:

    d = ord(i) #单个字符转换成ASCii码

    e = e*256 + d #将单个字符转换成的ASCii码相连

    print("e:%x" %e)

    print type(e)

    测试结果:

    e:665554

    如您所见16进制转ascii转换工具,以上两个小程序成功达到了此设计要求

    以上我在Python十六进制整数和ASCii编码的字符串之间的转换方法是我与您共享的所有内容. 我希望能给您参考16进制转ascii转换工具,也希望您能支持我们.

    本文标题: Python十六进制整数与ASCii编码的字符串之间的转换方法

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/jisuanjixue/article-278669-1.html

    展开全文
  • 本资源包含该实验需要编制的第三个程序代码:十六进制数转换为ASCII码。 本资源只含代码,不含实验报告,如果你需要的是实验报告就不要点开了以免浪费你宝贵的分数。本代码的可靠性极高,与网络上其他来源的实验报告...
  • 十六进制数ASCII码转换为十进制十六进制数的值域为0~65535,最大转换为五位十进制。要求将缓冲区的000CH的ASCII码转换为十进制,并将结果显示在屏幕上。 1.程序源码 DATAS SEGMENT XX DW 000CH ;此处输入...
  • 首先对于将十六进制数转换成他相应的ascll这句话是什么意思? 举个例子,比如说一位十六进制他的取值为 0-f,那么我们将它存贮在内存中,他们的ascll字符显示并不是0,1,2,3,…,a,b,c这样的字符 而我们的目的就是...
  • 题目:用查表法将一位十六进制数转换为ASCII码,入口参数放在内部RAM 50H中,出口参数在R0中。要求:用汇编语言完成编程(用DB "0","1"......)。悬赏分:0 - 解决时间:2010-1-15 15:52;---------------------------...
  • 十六进制转ASCII码.rar

    2020-12-04 22:14:53
    LABVIEW2018版软件,编写的十六进制转ASCII程序,支持100个字符。有需要的可以下载看看。
  • ASCII16进制 十六进制转ASCII码 //ASCII16进制 function strToHexCharCode(str) { if (str === “”) { return “”; } else { var hexCharCode = []; hexCharCode.push(“0x”); for (var i = 0; i < ...
  • 目的:将四位十六进制数203B存放于起始地址为3500H的内存单元中,把它们转换为ASCII码后存入起始地址是350AH的内存单元中。 设计思路:十六进制数0H~9H加上30H即可得到相应的ASCII码,AH~FH加上37H即可得到相应的...
  • ASCII 转十六进制 十六进制转ASCII 各种进制之间的转换 非常好用
  • 16进制ASCII

    2018-05-11 14:16:44
    16进制ASCII转程序和代码,比较简单代码网上的太复杂
  • (1)将 BUF开始的 10 个单元中的二进制转换成两位十六进制数ASCII 码,在屏幕上显示出来。要求码型转换通过子程序 HEXAC实现,在转换过程中,通过子程序 DISP实现显示. (2)编程实现从键盘接受一个字符串,再...
  • 输入一个十六进制数,然后转化为ASCII,并输出ASCII对应的字符。 例如:输入0xFF,0xFF的十进制为255,2的ASCII为0x32(50),5的ASCII为0x35(53),5的ASCII为0x35(53),输出ASCII字符显示为255。 #include <...
  • ASCII码转为十六进制数值

    热门讨论 2013-04-11 13:24:13
    ASCII码字符串转为十六进制数值,如“3405”四个字符转为0x3405,或者“34,05”转为0x3405.
  • 在使用Pyserial与STM32进行通讯时,遇到了需要将十六进制整数以Ascii码编码的字符串进行发送并且将接收...环境Python2.7 + Binascii模块十六进制整数转ASCii编码字符串# -*- coding: utf-8 -*-import binascii#16进...
  • 十六进制数转换为 ASCII

    万次阅读 2016-05-05 14:30:55
    十六进制数 0H~09H 加上 30H后得到相应的 ASCII 码, AH~FH 加上 37H 可得到相应的 ASCII
  • 十六进制ascii码互 C语言实现

    千次阅读 2020-10-27 01:22:18
    十六进制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...
  • 2字节小于10000 xor dx,dx;异或运算相当于将dx置0 div bx ;余数在dx中 add al,30h ;将商的ASCII码加30h对应显示数字的字符的ASCII码用于显示 mov [DI],al ;十进制最高位 inc cx ;自增指令,使CX自增,读取下...
  • STM32十六进制字符串十进制数值STM32十六进制字符串十进制数值STM32十六进制字符串十进制数值
  • 实现一个把十六进制数转换为对应ASCII码的程序 ;思路 先把原来的数加30h 若加上30h之后大于39h 说明原来的大于9 那么就再加上2h就是加7 ;先写结构然后在补充细节 details ;convert hex to Asc data segment hex db...
  • 生成一段随机数据并分别转换成二进制数据和ASCII码写入文本
  • python 把16进制字符串转化...十六进制ascii码怎么十六进制呢?(python)如何让python的16进制运算的输出格式为16进制而不...a='0x0012e' b= hex(eval(a)) print b 输出 0x12e 注意,一般计算机的十六进制数直接...
  • 学校的实验报告,在DOS下输入汇编程序,将十六进制数据串转换成ASCII码,有详细步骤
  • 在VS2010中用IFSTREAM来读取JPG文件,然后用OFSTREAM来写入txt文件,txt文件输出十六进制数据(例.. FF D8 .... FF D9)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,160
精华内容 26,064
关键字:

十六进制数转ascii的程序