精华内容
下载资源
问答
  • 汇编实现十六进制数向十进制数的转换 一、实现功能 实现一位十六进制数向十进制数的转换。 二、设计分析       汇编语言中,字符在机器中都是以ascii码的二进制格式存储,但是汇编语言写的时候常用...

    用汇编实现十六进制数向十进制数的转换

    一、实现功能

    实现一位十六进制数向十进制数的转换。

    二、设计分析

          汇编语言中,字符在机器中都是以ascii码的二进制格式存储,但是汇编语言写的时候常用十六进制,因此需要好好看看ascii码的十六进制表。

          特别是进制转换一定要注意,机器中存储的是数的二进制数本身,而我们输入输出的是数的ascii码的值,因此注意对寄存器中数的加减操作

    1. 实现十六进制数向十进制数的转换,先输入一位16进制数,判断输入字符的ascii码在30H-39H(0-9)之间,还是在41H-46H(A-F)之间,或者是在61H-66H(a-f)之间。如果是第一种情况则SUB DL,30H,如果是第二种情况则SUB DL,37H,如果是第三种情况则SUB DL,57H。

    2. 接下来需要将DL中的二进制数转换为十进制数输出。这里我选择将DX除以10,商在AL中,用来表示十位数,余数在AH中,用来表示个位数,如果商是0,则不用输出;如果商是1,则ADD AH,30H,输出AH。余数ADD AL,30H,输出AL。即可得到16进制对应的十进制数。

    3. 注意输出的字符的值是不等于机器中存放的二进制的值,因此需要进行加减法)最后输出对应的16进制的ascii码的值。

    4. 十六进制数向十进制数的转换流程图:
      在这里插入图片描述

    三、源代码

    DATA SEGMENT
    	TIP DB 'INPUT THE NUMBER: ','$'
    	TIP1 DB '  <=>  ','$'
    DATA ENDS
    
    CODE SEGMENT
    	ASSUME CS:CODE,DS:DATA
    START:
    	MOV AX,DATA
    	MOV DS,AX
    	LEA DX,TIP
    	MOV AH,09H
    	INT 21H
    
    INPUT:
    	MOV AH,1
    	INT 21H
    	CMP AL,30H
    	JB EXIT
    	CMP AL,39H
    	JA COMPER1
    	JMP CHANGE1    ;0~9之间
    COMPER1:
    	CMP AL,41H
    	JB EXIT
    	CMP AL,46H
    	JA COMPER2
    	JMP CHANGE2    ;在A-F之间
    COMPER2:
    	CMP AL,61H
    	JB EXIT
    	CMP AL,66H
    	JA EXIT
    	JMP CHANGE3    ;在a~f之间
    
    CHANGE1:
    	SUB AL,30H
    	JMP ENT
    CHANGE2:
    	SUB AL,37H
    	JMP ENT
    CHANGE3: 
    	SUB AL,57H
    	JMP ENT
    ENT:
    	MOV BL,AL
    	LEA DX,TIP1
    	MOV AH,09H
    	INT 21H
    	MOV AL,BL
    	MOV AH,0
    	MOV BL,10
    	DIV BL
    	MOV DH,AH
    	CMP AL,0
    	JE ONE
    	MOV DL,AL      ;十位数是1
    	ADD DL,30H
    	MOV AH,02H
    	INT 21H
    ONE:	                        ;十位数是0
    	MOV DL,DH
    	ADD DL,30H
    	MOV AH,02H
    	INT 21H
    EXIT:
    	MOV AH,4CH
    	INT 21H
    CODE ENDS
    END START
    
    展开全文
  • 此外,此分配将帮助您更好地理解用于将二进制数转换为十进制数的算法。 总而言之,此任务的目的是: 继续接触C,make和Git 确保您了解ASCII数字和二进制数字之间的区别 验证您了解如何将二进制数转换为十进制数 ...
  • //同上面的代码行是等价的,都表示个常整形。 int *const a;//const具有"左结合"性,即const修饰*,那么,不难理解,该句表示个指向整数的常指针,a指向的整数可以修改,但指针a不能修改。 const int *a;/...
    /**
    只读变量和常量 const 只读
    const int a;
    int const a;//同上面的代码行是等价的,都表示一个常整形数。
    
    int *const a;//const具有"左结合"性,即const修饰*,那么,不难理解,该句表示一个指向整数的常指针,a指向的整数可以修改,但指针a不能修改。
    const int *a;//与下面的这一行等价,根据"左结合"性,const修饰的是(*a),也即是一个整数,所以,这两句表示指针指向一个常整数。
    int const *a;
    int const *a const;//根据"左结合"性质,第一个const修饰(*),第二个const修饰(a),因此,这句话表示一个指向常整数的常指针。
    **/
    #include <stdio.h>
    #define PI 3.145926145926
    int main(void){
    	const int a = 10;//不能修改的常量 常数,不变的
    	int const b = 2.3E2;//不能修改等同上面的 2*10的2次方 E以10为底数的幂
    	//可以用指针修改变量
    	
    	//int *p = &a;//指针可以改
    	//*p = 55;
    	//printf("%07.3f\n",PI); //值保留3位小数;包括小数点共7位;不够前补0
    	
    	//int c = sizeof(float); // int float long 占4个字节 32位
    	char c = 'a'; //一个字符或者字母占用1个字节8个二进制位 最小的是1-255 
    	//c = sizeof(c);
    	printf("%d",c);//97输出的是ascii 01100010 存的是a 也就是说 字符也是用二进制存取的
    	return 0;
    }
    

      

    转载于:https://www.cnblogs.com/wanglijun/p/8467271.html

    展开全文
  • 十六进制转十进制

    2021-01-19 18:07:55
    问题描述: 从键盘输入个不超过8的正的十六进制数字符串,将它转换为正的十进制数后...把A转化为10则ASCII码的偏差值,A的ASCII码是65,所以只需要将ASCII码大于65的值减65加10就可得到十进制数。 import java

    问题描述:

    从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
      注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

    资源限制:

    时间限制:1.0s 内存限制:512.0MB

    样例输入:

    FFFF

    样例输出:

    65535

    分析:

    把十进制转化为十六进制只需要把十进制数的n位乘16的n减一次方即可。把A转化为10则用了ASCII码的偏差值,A的ASCII码是65,所以只需要将ASCII码大于65的值减65加10就可得到十进制数。

    import java.util.Scanner;
    
    public class Main {
    public static void main(String[] args) {
    	Scanner in=new Scanner(System.in);
        String n=in.next();
        char[] arr=n.toCharArray();
        long r=0;
        int c=0;
        for(int i=arr.length-1;i>=0;i--) {
            if(arr[i]>=65) {
                arr[i]=(char)((int)arr[i]-65+10);
            }else{
                arr[i]=(char)(arr[i]-48);
            }
            r=(long) (r+arr[i]*Math.pow(16, c));
            c++;
        }
        System.out.println(r);
    }
    }
    
    展开全文
  • 要把字符串表示的二进制数转换为ascii值,首先把他转换为十进制数,再python的内置函数的**chr()**函数将其转换为ascii值。因为ascii是按照7或者8bit来表示,所以我们要先将二进制数处理成8bit为组。 如果...

    要把字符串表示的二进制数转换为ascii值,首先把他转换为十进制数,再用python的内置函数的**chr()**函数将其转换为ascii值。因为ascii是按照7位或者8位bit来表示,所以我们要先将二进制数处理成8bit为一组。
    如果不是字符串表示的二进制数,直接在前面加上0b,显示会转换为十进制数
    所以用字符串表示的二进制数,在字符串前加上‘0b’,再用eval函数求值,eval用于括号中表达式的值,即可得到二进制对应的十进制数。最后调用chr()函数得到对用的ascii值。

    while(flag<length):
        target=res[flag:flag+8]              #分组为8bit一组
        target='0b'+target                   
        result=result+chr(eval(target))      #返回ascii结果
        flag=flag+8
    
    
    展开全文
  • 而BCD码中,0-9的每用一个字节(8)来表示。因此,因此规则的重合,在数据存储上,BCD码仅字符串存储即可,即数字12存储为字符串“12”。 但在BCD码运算时,需要转换为数字运算后进行存储。       ...
  • 进制数相加二进制到十进制的转换; 十六进制:每只能[0,15]来表示,其中A~F表示10,11,12,13,14,15 - 十六进制与二进制之间的转化:4二进制表示个16进制; - 十六进制与10进制的转化;计算机的...
  • BCD码转换成二进制ASCII

    万次阅读 2015-01-17 16:32:10
    转换过程:把BCD码 0010(十进制数为十上的 2)右移4(其实表示当作个个位数,或者说单纯的数值),然后乘以10 还原到十进制的权重(因为这个数本来表示的就是十进制数中的十)。处理完十上的数,接着处理...
  •  从键盘输入个不超过8的正的十六进制数字符串,将它转换为正的十进制数后输出。  注:十六进制数中的10~15分别大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535 方法1 知识点:1:ord(i)...
  • 在信息表示中使用最多的符号有:十进制数字0~9,大小写英文字母,通用的算术运算符及各种标点符号等大约128种,可以7进制数来编码表示128个不同的符号。  ASCII(American Standard Cord for Information ...
  • 其他进制转换成十进制各个位置乘以10进制相应的权即可(如果是16进制,那么会出现字母,可以整形来存储。字符串可以做加减运算,原理是ASCII码之间的运算) 下面的代码的是递归,算法十分简易。因为是递归,...
  • 进制关系

    2018-04-22 09:45:00
    十进制转换成二进制  bin(十进制) ...十六进制更简短,因为换算的时候,一位十六进制可以顶4位二进制数,也就是一个字节 最早规定ASCII字符集采用的就是8bit(后期扩展了,但基础单位还是8b...
  • (1)将两个多精度十进制数相加。 (2)编写个程序,他以二进制形式显示EAX中32数据,并设计个主程序验证。 (3)利用十六进制字节显示子程序DISPHB设计个从低地址到高地址逐个字节显示某个主存区域内容的...
  • ASCII及十六进制转换工具《建》

    热门讨论 2010-09-11 10:39:41
    答:“进制转换”只能转换数值型,而“字符转换”是把该字符串一位一位 分别当作字符来转换! 2."字符转换"中想把对应的值转化为对应的字符,如果包括分隔符,需要手工 填入。 (详见上面的:ASCII转字符) 3....
  • 黑猴子的家:进制

    2019-01-21 09:29:00
    二进制,01 八进制,01234567 十进制,0123456789 ...十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以两个16进制表示) (2)最早规定ASCII字符集采用的就...
  • 如果十六进制表示,个字节8,表示为两个十六进制的字符,128需要32个字符表示,有没有更短的方案 要知道个字节是无法表示所有的8ASCII码一共才100多个,并且有一些控制字符无法显示 可以用一个六...
  • 一个字节有8位,每一位两种状态1或者0 计算机储存数据是以二进制的bai方式,有一位为符号位,所以最大数为01111111转化为十进制数为127。 若无符号,最大数为11111111转化为十进制为255。
  • 我们在串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。 串口发送的数据是8位的,最大为255,就是FF,如果要发送大于255的,必须变成几个字节发送...
  • 对于任何一种进制---X进制,就表示每一位置上的运算时都是逢X进一位十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 现假设有一串葡萄的个数需要表达出来:二...
  • ASCII

    2011-09-29 16:20:53
    依次类推,7进制数可以表示(2=)128种状态,每种状态都唯一地编为个7的二进制码,对应个字符(或控制码),这些码可以排列成十进制序号0~127。所以,7位ASCII码是进制数进行编码的,可以...
  • ascii

    千次阅读 2018-03-16 09:47:51
    ASCII 码使用指定的7 或8 进制数组合来表示128 或256 种可能的字符。ASCII个数. 所谓十进制, 十六进制, 只是"人"什麼方式去看待这个数字.Bin(二进制)Oct(八进制)Dec(十进制)Hex(十六进制)...
  • 文章目录进制转换:浮点数 IEEE 754例1:已知754标准存储格式十六进制,求浮点数十进制数值例2:将十进制浮点数转换为754标准的32浮点数的二进制存储格式 数据格式: 二进制:0和1两个数码来表示的。它的基数...
  • 要求:E命令从键盘输入的五位十进制数ASCII码已存放在0500H起始的内存单元中(25H、30H、32H、34H、65H),把它转换成BCD码后,再分别存入050AH起始的内存单元中。若输入的不是十进制数的ASCII码,则对应的存放...
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    对于整型值,默认按十进制输出,此时%d可省略。 %d 123456789 = 123456789 (4)按十六进制输出 %x或%X %x时,字母abcdef输出为小写,%X时,字母abcdef输出为大写。 %x 31 = 0x1f %X 31 = 0X1F (5)...
  • 、字符编码简介 1、ASCII编码 每ASCII码与个8(bit)二进制数对应。...例如,数字符号‘0’的编码用十进制数表示就是48。另有128个扩展的ASCII码,最高都是1,由一些图形和画线符号组成。 ASC...
  • BCD,HEX,ASCII编码

    千次阅读 2017-08-21 11:52:24
    这种编码形式利用了四个元来储存十进制的数码,使二进制和十进制之间的转换得以快捷的进行。Hex 全称 是Intel HEX。Hex文件是由行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中...
  • 1.编码 ASCII 码使用指定的7 进制数组合来表示128 种可能的字符。...ANSI编码是种对ASCII码的拓展:ANSI编码0x00–0x7f (即十进制下的0到127)范围的1 个字节来表示 1 个英文字符,超出个...
  • 09-11-15:BCD码,ASCII

    千次阅读 2009-11-15 20:46:00
    四位二进制代码来表示一位十进制数,称为二--十进制编码,简称BCD(Binary Coded Decimal)码。根据代码的每一位是否有权值BCD码可分为有权码和无权码两类,应用最多的是8421BCD码,无权码得较多的是余三码和...
  • BCD码和ASCII码的相互转换

    千次阅读 2019-10-16 19:47:12
    BCD码和ASCII码的相互转换 最近遇到个问题就是将BCD码和ASCII码互换的问题,题目如下: ...1、首先BCD码同时也叫二进码十进数,通俗点就是4二进制数来表示0~9这10个十进制数,BCD码可以分为有权码和无权码...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 174
精华内容 69
热门标签
关键字:

一位十进制数用ascii