FUNCTION ANDA(X,Y) IF X=1 AND Y=1 THEN LET ANDA=1 ELSE LET ANDA=0 END IF END FUNCTION FUNCTION XORA(X,Y) IF X=Y THEN LET XORA=0 ELSE LET XORA=1 END IF END FUNCTION PRINT PRINT "論理演算を用いて2進数の加法を行います。" PRINT INPUT PROMPT "4桁未満の2進数 その1? ":x INPUT PROMPT "4桁未満の2進数 その2? ":y PRINT LET XX=x LET YY=y DIM A(4),B(4),C(4),D(5),E(4) MAT D=ZER FOR i=1 TO 4 ! x の各位の数を取り出す。A(4)は1の位の数になる。 LET A(i)=INT(x/(10^(4-i))) LET x=MOD(x,10^(4-i)) NEXT i FOR i=1 TO 4 LET B(i)=INT(y/(10^(4-i))) LET y=MOD(y,10^(4-i)) NEXT i LET D(5)=0 FOR i=4 TO 1 STEP -1 LET E(i)=XORA(A(i),D(i+1)) LET D(i)=ANDA(A(i),D(i+1)) ! 繰り上がりがあれば 1 なければ 0 LET C(i)=XORA(E(i),B(i)) ! 足し合った数の 5-i の位の数 IF D(i)=0 THEN LET D(i)=ANDA(E(i),B(i)) END IF NEXT i LET Z=D(1)*10^4 FOR i=1 TO 4 LET Z=Z+C(i)*10^(4-i) NEXT i PRINT " "; PRINT USING "#####":XX PRINT " +)"; PRINT USING "#####":YY PRINT " ========" PRINT " "; PRINT USING "#####":Z PRINT END