Showing posts with label binary. Show all posts
Showing posts with label binary. Show all posts
Thursday, May 25, 2017
Binary to Decimal Conversion Shell Script
Binary to Decimal Conversion Shell Script
#!/bin/bash
# SCRIPT: binary2dec.sh
# USAGE: binary2dec.sh Binary_Numbers(s)
# PURPOSE: Binary to Decimal Conversion. Takes input as command line
# arguments.
# \ ////
# - - //
# @ @
# ---oOOo-( )-oOOo---
#
#####################################################################
# Script Starts Here #
#####################################################################
if [ $# -eq 0 ]
then
echo "Argument(s) not supplied "
echo "Usage: binary2dec.sh Binary_Number(s)"
else
echo -e "33[1mBINARY DECIMAL33[0m"
while [ $# -ne 0 ]
do
Binary=$1
Bnumber=$Binary
Decimal=0
power=1
while [ $Binary -ne 0 ]
do
rem=$(expr $Binary % 10 )
Decimal=$((Decimal+(rem*power)))
power=$((power*2))
Binary=$(expr $Binary / 10)
done
echo -e "$Bnumber $Decimal"
shift
done
fi
#NOTE: Using bc command you can directly get output at command line.
# Here were converting the binary number 111 to a base 10 (decimal)
# number.
#
# $ echo ibase=2;obase=A;111 | bc
# 7
#
#Note that the obase is "A" and not "10".The reason for this is youve
# set the ibase to 2, so if you now had tried to use "10" as the value
# for the obase, it would stay as "2", because "10" in base 2 is "2".
# So you need to use hex to break out of binary mode or use obase=1010
#
# $ echo ibase=2;obase=1010;10000 | bc
# 16
# $ echo ibase=2;obase=1010;1000001 | bc
# 65
#
# You can omit obase=A, because default obase is 10(decimal).
# $ echo ibase=2;1000001 | bc
# 65
OUTPUT:
# sh binary2dec.sh 100 1111 1111111 1000000
BINARY DECIMAL
100 4
1111 15
1111111 127
1000000 64
# sh binary2dec.sh 1111111111111111111
BINARY DECIMAL
1111111111111111111 524287
# sh binary2dec.sh 10000000000000000000
BINARY DECIMAL
binary2dec.sh:line 28:[:10000000000000000000:integer expression expected
10000000000000000000
NOTE:My bash can handle upto 9223372036854775807.
But with bc command you can do more.
# echo ibase=2;10000000000000000000|bc
524288
# echo ibase=2;110000000000000000000|bc
1572864
Available link for download
Subscribe to:
Posts (Atom)