C语言输入两个十进制的数用二进制算法相加,键盘输入两个进位的十进制数相加 bcd码怎样转换为二进制...

80X86汇编语言,编写一条程序实现任意两个五位数相加并显示结果? ;12345+67890=80235 计算并全部显示出来.DATAS SEGMENTX DB 1,2,3,4,5;存放5位十进制数.Y DB 6,7,8,9,0;都是非压缩的BCD码.Z DB 6 DUP?6位数的和.DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV SI,0MOV CX,5;计划循环5次.K1:MOV DL,X[SI];取出一位XADD DL,30H;变成ASCII码.MOV AH,2;显示在屏幕.INT 21HINC SI;指向下一位.LOOP K1MOV DL,'+';显示加号.MOV AH,2INT 21HMOV SI,0MOV CX,5K2:MOV DL,Y[SI]ADD DL,30HMOV AH,2;显示5位数YINT 21HINC SILOOP K2MOV DL,'=';显示等号.MOV AH,2INT 21H下面是5位非压缩的BCD码相加.CLCMOV SI,4MOV CX,5;循环加5次.K3:MOV AL,X[SI];X、Y都是非压缩的BCD码.ADC AL,Y[SI];在AL中相加.AAA;非压缩的BCD码调整.MOV Z[SI+1],AL;保存和数.DEC SILOOP K3下面第6位BCD码.MOV AL,0ADC AL,0MOV Z,AL下面是6位和的BCD码显示.MOV SI,0MOV CX,6;显示6位.K4:MOV DL,Z[SI]ADD DL,30HMOV AH,2INT 21HINC SILOOP K4下面就结束程序.MOV AH,4CHINT 21HCODES ENDSEND START

8.jpg

bcd码怎样转换为二进制 最低0.27元开通文库会员,查看完整内容>;原发布者:亚邦金鑫333BCD码怎么转换成标准二进制形式?二进制编码的十进制数,简称BCD码(BinarycodedDecimal).这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6,7,8,9十个数符。4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9这十个数符。最常用的BCD码称为8421BCD码,8.4.2.1分别是4位二进数的位取值。e799bee5baa6e997aee7ad94e78988e69d8331333433623761点击此处将给出十进制数和8421BCD编码的对应关系表。1、BCD码与十进制数的转换BCD码与十进制数的转换.关系直观,相互转换也很简单,将十进制数75.4转换为BCD码如:75.4=(0111(0101.0100)BCD若将BCD码10000101.0101转换为十进制数如:(10000101.0101)BCD=85.5注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的。例如:00011000,当把它视为二进制数时,其值为24;但作为2位BCD码时,其值为18。又例如00011100,如将其视为二进制数,其值为28,但不能当成BCD码,因为在8421BCD码中,它是个非法编码.2、BCD码的格式计算机中的BCD。

6.jpg

汇编编程题 编写10个字(16位二进制数)之和的程序ORG 100hLEA SI,ADD1;LEA DI,ADD2;LEA BX,SUM;MOV CL,CONT;MOV CH,0;循环初始化CLC;进位清零MADD1:MOV AX,[SI];读加数1ADC AX,[DI]ADD SI,2;移动源区地址指针ADD DI,2;移动目的区地址指针MOV[BX],AX;回存计算结果ADD BX,2;移动“和”存储区地址指针LOOP MADD1;循环控制HLT;暂停ADD1 DB 0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加数1ADD2 DB 56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H;加数2SUM DB 10 DUP(0);和存储单元CONT DB 5;循环次数MODEL TINYDATANUM DW 121,121,12,3,2,1,1,3,21,31,2CODESTART:MOV AX,@DATAMOV DS,AXMOV CX,9MOV DX,0MOV DI,0MOV AX,NUM[DI]LOP:ADD AX,NUM[DI+1]ADC DX,0;存放可能的进位LOOP LOPEND START

2.jpg

C语言大整数相乘 第一个用大数的莫办就行。includeincludeincludeincludeusing namespace std;define MAXN 9999define DLEN 4class BigNum{public:int a[10000];int len;public:BigNum(){len=1;memset(a,0,sizeof(a));}BigNum(const int);BigNum(const char*);BigNum(const BigNum&);BigNum&operator=(const BigNum&);BigNum&operator>;>;friend ostream&operator>;>;(ostream&,BigNum&);BigNum operator+(const BigNum&)const;BigNum operator-(const BigNum&)const;BigNum operator*(const BigNum&)const;BigNum operator/(const int&)const;BigNum operator^(const int&)const;int operator%(const int&)const;bool operator>;(const BigNum&T)const;void print();};ostream&operator>;>;(ostream&os,BigNum&b){char ch;int i=-1;ch=cin.get();while(ch。'\\n'){b.a[+i]=ch-48;ch=cin.get();}b.len=i;return os;}BigNum:BigNum(const int b){int c,d=b;len=0;memset(a,0,sizeof(a));while(d>;MAXN){c=d-(d/(MAXN+1))*(MAXN+1);d=d/(MAXN+1);a[len+]=c;}a[len+]=d;}BigNum:BigNum(const char*s){int t,k,index,l;memset(a,0,sizeof(a));l=strlen(s);len=l/DLEN;if(l%DLEN)len+。

C语言,利用函数实现将二进制数转化为十进制数并实现相加。 1、2进制10进制的转换方法:二进制数1101转十进制:1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13附加一个八进制转十进制的例子吧:507(八进制转10进制):5×8的2次幂+0×8的1次幂+7×8的0次幂=5×64+0×8+7×1=327(10进制)2、例程:include\"stdio.hdouble BtoD(char B[]){double d=0;转为十进制数的中间结果变量int i=0;当前求到了二进制数的位置while(B[i+]。'\\0')/当没有到二进制数结束时,一直循环{d=d*2+B[i-1]-'0';求出每个二进制位的位权(从高位到低位,所以每求一位,先前的都应变为原来的2倍),累加到中间结果}return d;返回最终结果}int main(){char b1[20],b2[20];定义两个二进制数字符串scanf(\"%s%s\",b1,b2);输入两个字符串printf(\"%.0lf\",BtoD(b1)+BtoD(b2));输出两个二进制数转为十进制数后的和}

求用汇编语言编写一个实现任意两个五位数相加的程序 编程前,应把算法先想清楚了。code segment;任意两个五位数相加assume cs:code,ds:code,ss:codeorg 100h;标准COM格式start:jmp beginTips db 0dh,0ah,09,'?'X1 db '23456+98765='Y1 db '000000.Esc to Quit.',24hbegin:push cspop dspush dspop esmov ax,3;文本模式int 10hAgain:mov dx,offset Tips;提示mov ah,9int 21hcall input;接收任意两个五位数call count;求和输出十进制的结果*mov dx,offset Y1[-1]mov ah,9int 21hmov ah,0;暂停int 16hcmp ah,01;Esc 退出jnz Again;计算下一题mov ah,4ch;结束int 21hinput:cldmov si,offset X1mov cx,2T0:push cxmov cx,5T1:mov ah,0;接收数字int 16hcmp al,30h;数据校验jb T1cmp al,39hja T1mov ah,0eh;数据显示int 10hmov[si],al;存入数据区inc siloop T1inc si;跳过加号pop cxcmp cx,2jnz T2mov ax,0e2bh;输出加号int 10hT2:loop T0retcount:mov si,offset X1[4]mov di,offset Y1[5]xor dx,dx;清进位mov cx,5;改变此值,可实现超大数相加T3:call subs_c;逐位累加dec sidec diloop T3cmp dl,1;校正最高位jnz T4or dl,30hmov[di],dl;有进位,置1jmp T5T4。

高分求助汇编高手进 这是第二个,对于第一个与这一个的思路是一样的你自己看吧,程序很简单,思路是:以字符串的形式输入,然后转换成字符,对位进行相加,祝你好运功能:进行三个大数的相加 最多可以输入(1—80位)model small386stack 400hdatafirst_add db 80,0,80 dup(0)second_add db 80,0,80 dup(0)third_add db 80,0,80 dup(0)shuchu db 'The add result is:','$'tishi db 'Please input the add1 number:','$'tishi1 db 'Please input the add2 number:','$'tishi2 db 'Please input the add3 number:','$'宏操作input macro domov ah,2;置光标mov bh,0mov dl,12;列号int 10hmov dx,simov ah,9;显示字符串int 21hlea dx,do;存放加数mov ah,0ah;暂停,任意键关闭int 21hpop siendmCODESTART:mov ax,@datamov ds,axmov es,axlea si,tishi2push silea si,tishi1push silea si,tishipush sipop si进行屏幕的显示控制和提示进行输入的操作mov dh,2;行号 控制行 在第 3 行显示input first_addmov dh,4input second_addmov dh,6input third_add输出结果的提示信息lea si,shuchumov ah,2;置光标mov bh,0mov dh,12;行号mov dl,20;。

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值