aboutsummaryrefslogtreecommitdiff
path: root/challenge-119/paulo-custodio/awk/ch-1.awk
blob: 5ed8cb6c35af25b2ef2d55eb6a6de3c632cb0ca2 (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
29
30
31
32
33
34
#!/usr/bin/env gawk

# Challenge 119
#
# TASK #1 - Swap Nibbles
# Submitted by: Mohammad S Anwar
# You are given a positive integer $N.
#
# Write a script to swap the two nibbles of the binary representation of the
# given number and print the decimal number of the new binary representation.
#
# A nibble is a four-bit aggregation, or half an octet.
#
# To keep the task simple, we only allow integer less than or equal to 255.
#
# Example
# Input: $N = 101
# Output: 86
#
# Binary representation of decimal 101 is 1100101 or as 2 nibbles (0110)(0101).
# The swapped nibbles would be (0101)(0110) same as decimal 86.
#
# Input: $N = 18
# Output: 33
#
# Binary representation of decimal 18 is 10010 or as 2 nibbles (0001)(0010).
# The swapped nibbles would be (0010)(0001) same as decimal 33.

BEGIN {
    n = ARGV[1]
    n = ((int(n / 16) % 16) + ((n % 16) * 16))
    print n
    exit
}