aboutsummaryrefslogtreecommitdiff
path: root/challenge-120/lubos-kolouch/python/ch-1.py
blob: 9fb89c1f0f532d01c9540af08137f752cf7aaf6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# ===============================================================================
#
#         FILE: ch-2.pl
#
#        USAGE: ./ch-2.pl
#
#  DESCRIPTION: Perl Weekly Challenge #120
#               Task 1 - Swap Odd/Even bits
#
#       AUTHOR: Lubos Kolouch
#      CREATED: 20210710 04:44:33 PM
# ===============================================================================


def swap_bits(what: int):

    binary_what = str(bin(what)[2:])

    if len(binary_what) % 2 == 1:
        binary_what = "0" + binary_what

    arr = [binary_what[i:i+2] for i in range(0, len(binary_what), 2)]
    rev_arr = list(map(lambda x: x[::-1], arr))
    return int("".join(rev_arr), 2)


assert swap_bits(101) == 154
assert swap_bits(18) == 33