Skip to content

Commit

Permalink
Create 10_2_integer2lehex.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
shannona authored Oct 20, 2020
1 parent fb90def commit b59e0d2
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions src/10_2_integer2lehex.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash

if [ -z $1 ];
then
echo "You must include an integer as an argument.";
exit;
fi

if (( $1 > "2147483647" )) || (( $1 < "-2147483647" ));
then
echo "Your number ($1) must be between -2147483647 and 2147483647";
exit;
fi

if [ $1 -lt 0 ];
then
integer=$(echo $((-$1)));
negative=1;
else
integer=$1;
negative=0;
fi

hex=$(printf '%08x\n' $integer | sed 's/^\(00\)*//');

hexfirst=$(echo $hex | cut -c1)
[[ 0x$hexfirst -gt 0x7 ]] && hex="00"$hex

lehex=$(echo $hex | tac -rs .. | echo "$(tr -d '\n')");

if [ "$negative" -eq "1" ];
then
lehex=$(printf '%x\n' $((0x$lehex | 0x80)))
fi

size=$(echo -n $lehex | wc -c | awk '{print $1/2}');
hexcodeprefix=$(printf '%02x\n' $size);

echo "Integer: $1";
echo "LE Hex: $lehex";
echo "Length: $size bytes";
echo "Hexcode: $hexcodeprefix$lehex";

0 comments on commit b59e0d2

Please sign in to comment.