‎2007 Jul 09 7:03 AM
I would want to convert the binary values to those corresponding decimal equivalents,could any one help for doing the same.
‎2007 Jul 09 7:12 AM
Hi Nilesh,
You can use this code to do that,
REPORT ZC1BIN_TO_DECI MESSAGE-ID zc1conmsg.
PARAMETERS: bin TYPE i.
DATA: flag TYPE i,
deci TYPE i,
rev_bin TYPE string.
START-OF-SELECTION.
IF bin IS INITIAL.
MESSAGE i000.
EXIT.
ENDIF.
PERFORM validate_data USING bin CHANGING flag.
IF flag = 1.
MESSAGE i001.
EXIT.
ENDIF.
WRITE:/ 'Binary :',bin.
PERFORM string_reverse USING bin CHANGING rev_bin.
PERFORM binary_to_decimal USING rev_bin CHANGING deci.
WRITE:/ 'Decimal:',deci.
&----
*& Form validate_data
&----
This subroutine whether entered data is binary or not.
----
-->P_BIN text
<--P_FLAG text
----
FORM validate_data USING p_bin
CHANGING p_flag.
DATA: val TYPE string,
tem TYPE c,
l TYPE i.
val = p_bin.
l = strlen( val ).
DO l TIMES.
tem = val.
IF tem <> 1 .
IF tem <> 0.
p_flag = 1.
EXIT.
ENDIF.
ENDIF.
SHIFT val.
ENDDO.
ENDFORM. " validate
&----
*& Form string_reverse
&----
This subroutine reverses a given string.
----
-->P_BIN text
<--P_REV_BIN text
----
FORM string_reverse USING p_bin
CHANGING p_rev_bin.
DATA : t_bin TYPE string,
temp1 TYPE c,
l TYPE i.
t_bin = p_bin.
l = strlen( t_bin ).
DO l TIMES.
temp1 = t_bin.
CONCATENATE temp1 p_rev_bin INTO p_rev_bin.
SHIFT t_bin.
ENDDO.
ENDFORM. " string_reverse
&----
*& Form binary_to_decimal
&----
This Subroutine converts a binary number into decimal equivalent
----
-->P_REV_BIN text
<--P_DECI text
----
FORM binary_to_decimal USING p_rev_bin
CHANGING p_deci.
DATA : dig TYPE c,
dig1 type i,
t_bin TYPE string,
l TYPE i,
t_deci type i,
c TYPE i.
t_bin = p_rev_bin .
l = strlen( t_bin ).
c = 0.
DO l TIMES.
dig = p_rev_bin.
dig1 = dig.
t_deci = 2 ** c .
p_deci = p_deci + t_deci * dig1.
SHIFT p_rev_bin.
c = c + 1.
ENDDO.
ENDFORM.
‎2007 Jul 09 7:07 AM
‎2007 Jul 09 7:12 AM
Hi Nilesh,
You can use this code to do that,
REPORT ZC1BIN_TO_DECI MESSAGE-ID zc1conmsg.
PARAMETERS: bin TYPE i.
DATA: flag TYPE i,
deci TYPE i,
rev_bin TYPE string.
START-OF-SELECTION.
IF bin IS INITIAL.
MESSAGE i000.
EXIT.
ENDIF.
PERFORM validate_data USING bin CHANGING flag.
IF flag = 1.
MESSAGE i001.
EXIT.
ENDIF.
WRITE:/ 'Binary :',bin.
PERFORM string_reverse USING bin CHANGING rev_bin.
PERFORM binary_to_decimal USING rev_bin CHANGING deci.
WRITE:/ 'Decimal:',deci.
&----
*& Form validate_data
&----
This subroutine whether entered data is binary or not.
----
-->P_BIN text
<--P_FLAG text
----
FORM validate_data USING p_bin
CHANGING p_flag.
DATA: val TYPE string,
tem TYPE c,
l TYPE i.
val = p_bin.
l = strlen( val ).
DO l TIMES.
tem = val.
IF tem <> 1 .
IF tem <> 0.
p_flag = 1.
EXIT.
ENDIF.
ENDIF.
SHIFT val.
ENDDO.
ENDFORM. " validate
&----
*& Form string_reverse
&----
This subroutine reverses a given string.
----
-->P_BIN text
<--P_REV_BIN text
----
FORM string_reverse USING p_bin
CHANGING p_rev_bin.
DATA : t_bin TYPE string,
temp1 TYPE c,
l TYPE i.
t_bin = p_bin.
l = strlen( t_bin ).
DO l TIMES.
temp1 = t_bin.
CONCATENATE temp1 p_rev_bin INTO p_rev_bin.
SHIFT t_bin.
ENDDO.
ENDFORM. " string_reverse
&----
*& Form binary_to_decimal
&----
This Subroutine converts a binary number into decimal equivalent
----
-->P_REV_BIN text
<--P_DECI text
----
FORM binary_to_decimal USING p_rev_bin
CHANGING p_deci.
DATA : dig TYPE c,
dig1 type i,
t_bin TYPE string,
l TYPE i,
t_deci type i,
c TYPE i.
t_bin = p_rev_bin .
l = strlen( t_bin ).
c = 0.
DO l TIMES.
dig = p_rev_bin.
dig1 = dig.
t_deci = 2 ** c .
p_deci = p_deci + t_deci * dig1.
SHIFT p_rev_bin.
c = c + 1.
ENDDO.
ENDFORM.
‎2007 Jul 09 7:20 AM
Hi
Try likethis
1. submit report exporting list to memory.
2. to get the output from memory
call function 'LIST_FROM_MEMORY'
tables
listobject = int_listobject
exceptions
not_found = 1.
3. to convert the list in binary format to text (ASCI)
call function 'LIST_TO_ASCI'
tables
listasci = int_listascii
listobject = int_listobject
exceptions
others = 1.
there is no need to use
SCMS_BINARY_TO_TEXT
Reward all helpfull answers
Regards
Pavan
‎2007 Jul 09 7:36 AM
Hi Manikandan,
I would also want to reverse string is it possible with the program?
‎2007 Jul 09 7:37 AM
hi,
Use STRING_REVERSE FM to reverse the string
CALL FUNCTION 'STRING_REVERSE'
EXPORTING
string = descr
lang = 'E'
IMPORTING
rstring = descr.
‎2007 Jul 09 8:00 AM
You can use this subroutine for reversing string,
&----
*& Form string_reverse
&----
This subroutine reverses a given string.
----
-->P_BIN text
<--P_REV_BIN text
----
FORM string_reverse USING p_bin
CHANGING p_rev_bin.
DATA : t_bin TYPE string,
temp1 TYPE c,
l TYPE i.
t_bin = p_bin.
l = strlen( t_bin ).
DO l TIMES.
temp1 = t_bin.
CONCATENATE temp1 p_rev_bin INTO p_rev_bin.
SHIFT t_bin.
ENDDO.
ENDFORM. " string_reverse
Regards,
Manikandan