diff --git a/src/utils/zcl_abapgit_convert.clas.abap b/src/utils/zcl_abapgit_convert.clas.abap index f0922e3c3..f5294e3ad 100644 --- a/src/utils/zcl_abapgit_convert.clas.abap +++ b/src/utils/zcl_abapgit_convert.clas.abap @@ -50,19 +50,34 @@ CLASS ZCL_ABAPGIT_CONVERT IMPLEMENTATION. METHOD bitbyte_to_int. - DATA: lv_bits TYPE string. + DATA: bitbyte TYPE string, + len TYPE i, + offset TYPE i. - - lv_bits = iv_bits. + bitbyte = iv_bits. + SHIFT bitbyte LEFT DELETING LEADING '0 '. + len = strlen( bitbyte ). + offset = len - 1. rv_int = 0. - WHILE strlen( lv_bits ) > 0. - rv_int = rv_int * 2. - IF lv_bits(1) = '1'. - rv_int = rv_int + 1. + DO len TIMES. + + IF sy-index = 1. + + "Intialize + CASE bitbyte+offset(1). + WHEN '1'. rv_int = 1. + ENDCASE. + + ELSE. + CASE bitbyte+offset(1). + WHEN '1'. rv_int = rv_int + ( 2 ** ( sy-index - 1 ) ). + ENDCASE. ENDIF. - lv_bits = lv_bits+1. - ENDWHILE. + + offset = offset - 1. "Move Cursor + + ENDDO. ENDMETHOD. "bitbyte_to_int