精华内容
下载资源
问答
  • 该汇编语句完成的是从键盘上根据提示输入任意位的十进制数,显示加号横线并显示结果
  • 先说两个函数: Integer.parseInt(String s,int radix) 这个函数的作用是把s作为radix进制数表示出来,也就是返回一个radix进制。 Integer.toString(int I, int radix) ...题目二:两个三进制数相加,并

    先说两个函数:
    Integer.parseInt(String s,int radix)
    这个函数的作用是把s作为radix进制数表示出来,也就是返回一个radix进制的数。

    Integer.toString(int I, int radix)
    这个函数将i转换成radix进制的数,i是一个十进制的数。

    其他:
    Integer.valueOf(String s , int raidx)
    将之前是radix进制的数转换成十进制的数

    以下是题目的解决代码:(本来可以更简单的)

    /*
    题目二:两个三进制数相加,并返回为三进制数形式的和
    思路:先把两个三进制数转换成十进制数,相加之后再将这两个数字转换成三进制数
    */
    public class jinzhitransform {	
    	public static void main(String[] agrs) {
      		int num1= Integer.parseInt("121",3);  
      		int num2= Integer.parseInt("1212",3);
     		 int sum = num1+ num2;
     		 System.out.println("结果是:"+Integer.toString(sum,3));
     } 
    }
    

    输出的结果是:

    结果是:2110

    展开全文
  • 代码中是设x=1234;Y=5678.最终将BCD码X+Y的和保存在SUM变量之中(结果在附加段,请自行用debug查看)
  • 两个多位十进制数相加,要求加和被加均以ASCII码形式各自顺序存放以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
  • 这是两个多位十进制数相加的汇编语言程序源码。
  • 两个多位十进制数相加的实验 将两个多位十进制数相加,要求加和被加均以ASCII码形式各自顺序存放以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
  • Python操作------两个进制数相加 方法一:转换成十进制相加 def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str """ a = int(a,2) b = int(b,2) ...

    Python操作------两个二进制数相加

    方法一:转换成十进制再相加

    def addBinary(self, a, b):
            """
            :type a: str
            :type b: str
            :rtype: str
            """
            a = int(a,2)
            b = int(b,2)
            return bin(a+b)[2:]
    
    展开全文
  • 微机原理实验一__两个多位十进制数相加实验试做报告
  • Java两个进制数求和

    2021-02-09 15:47:28
    在本教程中,您将学习一个Java程序,了解如何对两个进制数求和。二进制数仅以“ 0”和“ 1”表示。没有其他数字。如果一个数字的数字不为0和1,则它不是二进制数字。我在互联网上看到很多例子,它们都只显示程序,...

    1.简介


    在本教程中,您将学习一个Java程序,了解如何对两个二进制数求和。二进制数仅以“ 0”和“ 1”表示。没有其他数字。如果一个数字的数字不为0和1,则它不是二进制数字。我在互联网上看到很多例子,它们都只显示程序,但给出了解释。在这里,它与按位与运算符不同。它看起来像&运算符,但不是。您将在本文中得到澄清。不要跳过任何内容,也不要直接看到代码。
     

     






    通常,这可以通过两种方式完成。首先,我们不使用任何Java API方法,而仅使用交换理论与逻辑设计(STLD)主题中的工程概念,而第二种方法是使用Integer API完成的。

    在编写用于加法的程序之前,让我们看一下如何在纸上进行加法,如下图所示:
    在Java中添加二进制数

    二进制数序列加法如下。

    将两个二进制“ 1”(例如1 + 1)相加会产生十进制数字2,但我们应将其转换为二进制数10。这里0是实际的总和,而1是一个进位。
    0 + 0将产生0
    0 + 1-> 1
    1 + 0-> 1

    在这里,所有输出均应为二进制数字,并且不允许使用十进制数字。

    2.示例算法演练:在Java中添加两个Binay数


    以两个二进制数进行演示。

    binaryNumber1 = 10101
    binaryNumber2 = 10001
    进位= 0
     

    迭代1:


    1010 1
    1000 1

    进位+
    二进制数1的第一个数字+二进制数2的第一个数字0 +1 + 1 = 10(这是一个二进制数),这里是进位+总和的组合。所以在这里进行如下求和。
    进位= 1
    首位总和= 0
     

    迭代2:


    101 0 1
    100 0 1

    进位(来自上一步)+二进制数
    1的第二位+二进制数2的第二位1 + 0 + 0 = 01
    进位= 0
    第二位总和= 1
     

    迭代3:


    10 1 01
    10 0 01

    进位(来自上一步)+二进制数
    1的第三位+二进制数2的第三位0 +1 + 0 = 01
    进位=
    第三位总和= 1

     

    迭代4:


    0 101
    0 001

    进位(来自上一步)+二进制数1的第四位+二进制数2的第四位
    0 + 0 + 0 = 0
    进位= 0
    第四位总和= 0
     

    迭代5:


    1 0101
    1 0001

    进位(来自上一步)+二进制数
    1的第五位+二进制数2的第五位0 +1 + 1 = 10
    进位= 1
    第五位总和= 0

     

    输出:


    公式: 进位+所有数字总和(第五位数字总和第四位数字总和第三位数字总和第二位数字总和第一位数字总和) 100110


     

    3.添加两个二进制数的示例程序

    上面的示例值将传递给该程序并产生相同的输出。
     

    public class AddBinaryNumbers {
    
    	public static void main(String[] args) {
    
    		// two binary numbers
    		long binaryNumber1 = 10101, binaryNumber2 = 10001;
    
    		// i represents the index of the finalSumOutput array.
    		int i = 0;
    
    		// carry which is to hold the value of carry.
    		int carry = 0;
    
    		// Created int array to hold the output binary number
    		int[] finalSumOutput = new int[10];
    
    		while (binaryNumber1 != 0 || binaryNumber2 != 0) {
    
    			finalSumOutput[i++] = (int) (carry + (binaryNumber1 % 10 + binaryNumber2 % 10) % 2);
    
    			carry = (int) ((binaryNumber1 % 10 + binaryNumber2 % 10 + carry) / 2);
    
    			binaryNumber1 = binaryNumber1 / 10;
    			binaryNumber2 = binaryNumber2 / 10;
    		}
    		if (carry != 0) {
    			finalSumOutput[i++] = carry;
    		}
    		--i;
    		System.out.print("Output: ");
    		// printing from the last index to 0.
    		while (i >= 0) {
    			System.out.print(finalSumOutput[i--]);
    		}
    		System.out.print("\n");
    	}
    
    }


    输出:
     

    100110

     

    4.添加二进制数的第二种方法


    Java API Integer类具有parseInt()方法,该方法采用字符串和基数。如果我们传递基数值2,则它将考虑字符串值的二进制数。接下来,我们执行sum并将输出int值传递给toBinaryString()方法,该方法将整数转换回二进制数。我们需要二进制格式的期望输出。

    让我们看看下面的程序。
     

    public class AddBinaryNumbersWay2 {
    
    	public static void main(String[] args) {
    
    		// two binary numbers in string format
    		String binaryNumber1 = "10101", binaryNumber2 = "10001";
    
    		// converting strings into binary format numbers
    		Integer integer1 = Integer.parseInt(binaryNumber1, 2);
    		Integer integer2 = Integer.parseInt(binaryNumber2, 2);
    
    		// adding two integers
    		Integer output = integer1 + integer2;
    
    		// converting final output back to Binary Integer
    		System.out.println(Integer.toBinaryString(output));
    
    	}
    
    }


    输出:

    两种方法都采用相同的输入。观察者的输出也相同。两者都产生预期的结果。

     

    100110
     
     

     

    5.结论


    在本文中,您已经学习了如何编写一个Java程序来添加两个二进制数。这可以通过两种方式完成。第一种方法是不使用任何Java API方法,而完全使用交换理论与逻辑设计(STLD)逻辑。第二种方法是使用Integer包装类基数选项。
    展开全文
  • 本实验是个32位二制数相加运算,而8086指令系统中只有16位二进制数加法指令,因此,不能直接用加法指令ADD将两个数相加。假设个32位数分别为X、Y、Z,从原理上来说,相加的方案有两种。第一种方案,将X与Y相加完...


    实验要求:

    编程计算X+Y+Z=?(X、Y、Z为32位二制数)。



    实验思考与原理:

    本实验是三个32位二制数相加运算,而8086指令系统中只有16位二进制数加法指令,因此,不能直接用加法指令ADD将两个数相加。假设三个32位数分别为X、Y、Z,从原理上来说,相加的方案有两种。第一种方案,将X与Y相加完后,再将它们的和与Z相加。第二种方案,先将X、Y、Z的低十六位二进制数相加,再考虑X、Y、Z的高十六位二进制数相加。

    实验仪器设备:

    微机原理实验箱、安装了TPC_386EX软件的计算机、串口通信线、键盘



    实验步骤:(采用方案二)

    1. 先将X与Y的低十六位二进制数相加,保存进位到某个单元或某个寄存器(假设为BX,用于存放低十六位二进制数相加的进位)。
    2. 再将X与Y的低十六位二进制数相加的结果与Z的低十六位二进制数相加,相加完后的进位还要加到BX中。
    3. 同样将X与Y的高十六位二进制数相加,保存进位到某个单元或某个寄存器(假设为DX,用于存放高十六位二进制数相加的进位)。
    4. 然后将X与Y的高十六位二进制数相加的结果与Z的高十六位二进制数相加,相加完后的进位还要加到DX中。
    5. 最后将X、Y与Z的高十六位二进制数相加的结果与BX相加,相加的进位还要加到DX中。


    实验程序:

    .MODEL SMALL
    .386
    DATA SEGMENT  ;定义一个数据段
          X  DD 90009000H
          Y  DD 70006000H
          Z  DD 60006000H
    DATA ENDS
    CODE 		SEGMENT   ;定义一个代码段     
    ASSUME 	CS:CODE, DS:DATA
    START: 	MOV AX, DATA
            MOV DS, AX
            XOR BX,BX; 存放进位的寄存器BX清0
            XOR DX,DX; 存放进位的寄存器DX清0
            LEA SI,X
            MOV AX,[SI]
    	    ADD AX,[SI+4]
                ADC BX,0;保存低十六位X+Y产生的进位
                ADD AX,[SI+8]
                MOV DI,AX;将高十六位数送入SI寄存器中,以免在子程序中影响CX的值(或者不用MOV指令,在子程序中对CX进行现场保护)
                ADC BX,0;保存低十六位X+Y+Z产生的进位
            MOV AX,[SI+2]
                ADD CX,[SI+6]
                ADC DX,0;保存高十六位X+Y产生的进位
    	    ADD CX,[SI+10]
                ADC DX,0;保存高十六位X+Y+Z产生的进位 
                ADD CX,BX;
                ADC DX,0;保存CX+BX产生的进位
            MOV SI,CX;将高十六位数送入SI寄存器中,以免在子程序中影响CX的值(或者不用MOV指令,在子程序中对CX进行现场保护)
            XCHG DX,AX
            CALL DISPAX;显示进位DX的内容
            XCHG SI,AX;
            CALL DISPAX;显示高十六位的内容
            XCHG DI,AX
            CALL DISPAX;显示低十六位的内容
            MOV AH,02
            MOV DL,48H;显示字母H
            INT 21H
            JMP $
           
    ;子程序DISPAX显示AX的内容
    DISPAX: XCHG AL,AH
    	    CALL DISPAL
    	    XCHG AH,AL
    	    CALL DISPAL
            RET
    DISPAL: PUSH AX
            PUSH AX
            MOV CL,4		;处理高位十六进制数
            SHR AL,CL
            CALL CHANG	;十六进制数变换成ASCII码
            MOV AH,02
            MOV DL,AL
            INT 21H			;显示一位字符
            POP AX
            AND AL,0FH		;处理低位十六进制数
            CALL CHANG	;十六进制数变换成ASCII码
            MOV AH,02
            MOV DL,AL
            INT 21H		;显示一位字符
            POP AX
            RET
    ; 十六进制数变换成ASCII码
    CHANG:  CMP AL,10
            JNGE CHANG1
            ADD AL,7
    CHANG1: ADD AL,30H
            RET
    
    CODE     ENDS
    END  START

    实验结果记录:

    实验总结及补充:

    该实验的关键是32位二进制数的相加方法以及32位结果数的显示。该程序调用了多个子程序,比较复杂,需要我们逐步分析一个个模块。初学微机不久,对汇编程序尚不熟练,以下是对类似程序16位二进制数相加程序一些重要指令的标注。

      

    展开全文
  • 键盘输入两个一位十进制数 ,以十进制数的形式输出其和 stack segment db 10 dup(?) stack ends data segment ;显示提示语句 string_1 db 'input num a: $' string_2 db 0ah,0dh,'input num b: $' string_3 db 0ah,...
  • 汇编 实现两个16进制相加的代码 如 输入: AAAA 1111 输出: BBBB
  • 将一数字字符串变为八位二进制数然后相加,最后结果为一进制数相加结果 //测试字符串 String xxx = "1234"; //将字符串转换为字符数组 char[] arr = xxx.toCharArray(); //得到数组长度,避免多次调用 ...
  • 两个进制数字求和

    2020-03-27 00:39:57
    给定两个进制字符串,返回他们的和(用二进制表示)。 第一反应是先把二进制字符串转化为十进制,然后计算他们的和,再把他们的和转为二进制。 //二进制转十进制 int BinaryToDecimal(string s) { int num = 0...
  • import java.util.Scanner; /** * @author LXC */ public class BinaryAdd{ public static void main(String [] args){ Scanner sc=new Scanner(System.in);... System.out.println("请输入第一进制...
  • 问题1:用汇编语言编写,将一包含10带符号的数组分成正数数组和负数数组? 1.你的10带符号的数据是存放在内存中还是要手工输入的(这代码量就大多了) 2.你的10数据是几字节的(最简的是单字节操作) 3...
  • 两个题目放在了一起,输入H(D)+数字+空格+数字+空格就会看到和 可以参考输入示范的截图 输入H代表你输入16进制...计算两个在和在65535内的十进制数或16进制数的和,这两个数最多可以是五位十进制数 db 10 dup(0);用
  • 下面给出的是一通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样源程序进行编辑,汇编后,根据TASM给出的错误信息源程序进行修改,直到没有...
  • 输入两位十六进制数,输出其十进制值 题目: 输入:ff 输出:255 输入:12 输出:018 (默认字符为小写) 代码 stack segment stack ends data segment string_1 db 'please input a num: $' string_2 db 0ah,0dh,'...
  • 汇编语言编程:键入两个8进制数字,相加后以16进制输出;======================================...----------------------------------------------TITLE 从键盘输入两位8进制数相加后输出其16进制数形式;---------
  • 程序段目录题目要求程序结构数据段定义十六进制输出合理的创建标题,有助于目录的...汇编语言实现从键盘输入两个4位十进制数 ,将它们的和存SUM 单元,并输出对应的十进制数 。 汇编语言实现从键盘输入两个4位十进制数
  • Input The input contains several test cases, please process to the end of the file.Each case consists of two hexadecimal integers A and B in a line ...每个情况由两个十六进制整数 A 和 B 组成,在一行
  • 考虑把两个n位二进制整数加起来的问题,这两个整数分别存储在两个n元数组A和B中。这两个整数的和应按二进制形式存储在一个(n+1)元数组C中。请给出该问题的形式化描述,并写出伪代码。 找到的答案如下: Input: ...
  • 程序,必须输入两位10进制数. 比如 11,45 以空格隔开,必须是这样的形式,否则无法计算并且两的和不能超过99, data1 segment var db 6,0,6 dup(0),'$' da1 db 2 dup(0),0ah,0dh,'$' da2 db 2 dup(0),0ah,0dh,'$' ...
  • 首先我们需要从键盘输入两个16进制数,思考两个十六进制数该如何写入;其次,我们要将十六进制数转化成十进制;最后我们要考虑如何输出。解决了这个小问题,本题就算完成了。 在这里插入代码片 ...
  • 从键盘读入两个两位十进制数,显示其和与差
  • 任意位数的两个16进制加法运算

    千次阅读 2018-11-22 14:21:50
    前段时间因为项目需要,要求需要用到两个30位的16进制数运算相加,普通的类型装换会溢出,无法得出真正的结果,用ASP脚本写了算法,下班没事用Java写了这个可以进行任意位数的16进制加法运算,希望得到指正修改,...
  • 给定两个进制字符串,返回他们的和(也是一个二进制字符串)。 输入的字符串都是非空的,并且只包含1或0。 示例: Example 1: Input: a = "11", b = "1" Output: "100" Example 2:...
  • 案例分析:接收用户输入两个字符串(为九进制数),将两个字符串的相加的结果以九进制数输出。 功能分析 1.接受用户输入两个数num1 num2 (字符串型) 2.设计按位相加函数实现逐位相加 3.将得到的结果以数字...
  • python二进制相加

    千次阅读 2019-11-30 09:38:36
     两个进制数11110011101和1111101001的和是多少?请用二进制表示,注意在提交的时候不要提交前导0。 答案提交  这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个二进制数,在提交答案时只...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,406
精华内容 15,362
关键字:

对输入的两个三进制数相加