mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-03 05:18:59 +08:00
78 lines
1.3 KiB
ABAP
78 lines
1.3 KiB
ABAP
CLASS zcl_abapgit_zlib_convert DEFINITION
|
|
PUBLIC
|
|
CREATE PUBLIC .
|
|
|
|
PUBLIC SECTION.
|
|
|
|
CLASS-METHODS hex_to_bits
|
|
IMPORTING
|
|
!iv_hex TYPE xsequence
|
|
RETURNING
|
|
VALUE(rv_bits) TYPE string .
|
|
CLASS-METHODS bits_to_int
|
|
IMPORTING
|
|
!iv_bits TYPE clike
|
|
RETURNING
|
|
VALUE(rv_int) TYPE i .
|
|
CLASS-METHODS int_to_hex
|
|
IMPORTING
|
|
!iv_int TYPE i
|
|
RETURNING
|
|
VALUE(rv_hex) TYPE xstring .
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS ZCL_ABAPGIT_ZLIB_CONVERT IMPLEMENTATION.
|
|
|
|
|
|
METHOD bits_to_int.
|
|
|
|
DATA: lv_c TYPE c LENGTH 1,
|
|
lv_bits TYPE string.
|
|
|
|
lv_bits = iv_bits.
|
|
|
|
WHILE NOT lv_bits IS INITIAL.
|
|
lv_c = lv_bits.
|
|
rv_int = rv_int * 2.
|
|
rv_int = rv_int + lv_c.
|
|
lv_bits = lv_bits+1.
|
|
ENDWHILE.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD hex_to_bits.
|
|
|
|
DATA: lv_x TYPE x LENGTH 1,
|
|
lv_c TYPE c LENGTH 1,
|
|
lv_bit TYPE i,
|
|
lv_hex TYPE xstring.
|
|
|
|
|
|
lv_hex = iv_hex.
|
|
WHILE NOT lv_hex IS INITIAL.
|
|
lv_x = lv_hex.
|
|
DO 8 TIMES.
|
|
lv_bit = sy-index.
|
|
GET BIT lv_bit OF lv_x INTO lv_c.
|
|
CONCATENATE rv_bits lv_c INTO rv_bits.
|
|
ENDDO.
|
|
lv_hex = lv_hex+1.
|
|
ENDWHILE.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD int_to_hex.
|
|
|
|
DATA: lv_x TYPE x.
|
|
|
|
|
|
lv_x = iv_int.
|
|
rv_hex = lv_x.
|
|
|
|
ENDMETHOD.
|
|
ENDCLASS.
|