Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Is there a FM to convert decimal value to binary value?

former_member207732
Participant
0 Kudos

Hi,

I want to convert decimal value like '10' to binary value like '1010'. Is there a FM that I can use?

Thanks!

3 REPLIES 3

Former Member
0 Kudos

Hi

Check the fun modules related to Binary Conversions

SCMS_BINARY_TO_FTEXT

SCMS_BINARY_TO_STRING

SCMS_BINARY_TO_TEXT

SCMS_BINARY_TO_XSTRING

SCMS_FTEXT_TO_BINARY

SCMS_TEXT_TO_BINARY

SCMS_XSTRING_TO_BINARY

SRET_BINARY_TO_TEXT

SRET_TEXT_TO_BINARY

<b>Reward points for useful Answers</b>

Regards

Anji

Former Member
0 Kudos

Hi,

I guess No function module

Regards,

Omkar.

Former Member
0 Kudos

Hi Long,

There is as such no function module like that. But you can use the below code to achive your desired result. Create a function module and call the same in your program to make it more modularized.

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.

Thanks,

Samantak

Rewards points for useful answers.