Thursday, October 12, 2006

Decimal a Binario en ABAP


Continuando con los programas sin mucho sentido...Que les parece un Decimal a Binario en ABAP...Dudo mucho que alguna vez lo necesiten, pero bueno, un pequeño código nunca está de más -;)

REPORT ZDECIMAL_A_BINARIO.

DATA: SUMA TYPE I,
EXPONENTE TYPE I,
DIGITO TYPE I,
SUMA_TEXT(50) TYPE C.

SELECTION-SCREEN BEGIN OF BLOCK DEC_TO_BIN WITH FRAME.
PARAMETERS:
P_NUMERO TYPE I.
SELECTION-SCREEN END OF BLOCK DEC_TO_BIN.

START-OF-SELECTION.

SUMA = 0.
EXPONENTE = 1.

CATCH SYSTEM-EXCEPTIONS ARITHMETIC_ERRORS = 5.
WHILE P_NUMERO GT 0.
DIGITO = P_NUMERO MOD 2.
P_NUMERO = P_NUMERO DIV 2.
SUMA = SUMA + DIGITO * EXPONENTE.
EXPONENTE = EXPONENTE * 10.
ENDWHILE.
ENDCATCH.

IF SY-SUBRC = 5.
WRITE / 'Número demasiado grande!'.
ELSE.
SUMA_TEXT = SUMA.
REPLACE '.' WITH SPACE INTO SUMA_TEXT.
REPLACE ',' WITH SPACE INTO SUMA_TEXT.
CONDENSE SUMA_TEXT NO-GAPS.

WRITE: 'El numero binario es: ', SUMA_TEXT.
ENDIF.


Saludos,

Blag.

No comments: