c语言二进制数的加减运算

Python015

c语言二进制数的加减运算,第1张

1、二进制加法基本指令(1)ADD指令格式:ADD DST,SRC该指令把源操作数(SRC)指向的数据与目的操作数(DST)相加后,将结果放到目的操作数(DST)中,所执行的操作:(DST)ß(SRC)+(DST)SRC和DST不能同时为存储器操作数和段寄存器,同时SRC和DST的数据类型要匹配,要同是字节或字。受影响的标志位有:OF,SF,ZF,AF,PF,CF。(2)ADC指令格式:ADC DST,SRC所执行的操作:(DST)ß(SRC)+(DST)+CF 了解清楚进位是怎样加的该指令把两个操作数(SRC和DST)相加以后,再加上进位标志CF,将结果放到目的操作数(DST)中。受影响的标志位有:OF,SF,ZF,AF,PF,CF。ADC指令多用于多精度数据相加。2、二进制减法基本指令(1)SUB指令格式:SUB DST,SRC所执行的操作:(DST)ß (DST)-(SRC)该指令把源操作数(SRC)指向的数据与目的操作数(DST)相减后,将结果放到目的操作数(DST)中,SRC和DST不能同时为存储器操作数和段寄存器(,同时SRC和DST的数据类型要匹配,要同是字节或字。受影响的标志位有:OF,SF,ZF,AF,PF,CF。(2)SBB指令格式:SBB DST,SRC(DST)ß (DST)-(SRC)-CF 了解清楚进位是怎样减的该指令把两个操作数(SRC和DST)相减以后,再减去CF,将结果放到目的操作数(DST)中。受影响的标志位有:OF,SF,ZF,AF,PF,CF。SBB指令多用于多精度数据相加。

用数组来做就是了,byte数组或bit数组,先将数模2运算得到各位的值,存入数组中,之后一个循环来做二进制加减法就成了,溢出的判断也很简单,根据两个运算数的模与他们的符号,还有所进行的运算,用几个if语句就解决了

1.首先不超过2的31次方,则只需要32位就够了,不需要那么大的数组。

2.x,y是int数组,'\0'就是0,怎么能作为x,y的结束

3.你不是一开始就算出来x,y的长度了吗,l1,l2,通过这个长度不就知道相加处理多少位了,

而且哪个长,最后再单独处理哪个不就行了。

或者在一开始,就把长的放在x中,短的放在y中,最后总是处理x。