×
Create a new article
Write your page title here:
We currently have 3,189 articles on s23. Type your article name above or create one of the articles listed here!



    s23
    3,189Articles

    Hex2dec: Difference between revisions

    Content added Content deleted
    imported>mutante
    mNo edit summary
    imported>mutante
    m (Category:Math)
     
    Line 62: Line 62:
    [[Category:Linux]]
    [[Category:Linux]]
    [[Category:Scripts]]
    [[Category:Scripts]]
    [[Category:Math]]

    Latest revision as of 19:32, 16 November 2006

    A bash script to convert hexadecimal to decimal numbers.

    <highlightSyntax>

    1. !/bin/bash
    2. hex to decimal number converter
    3. mutante (s23.org) 11/2006

    if [ ! -n "$1" ] then read -p "Give me a hex number: " hex else hex=$1 fi

    length=${#hex} i=0 result=0 let length-- pos=0 while [ $length -ge 0 ]; do digit=${hex:$length:1} case "$digit" in A | a) ddigit=10;; B | b) ddigit=11;; C | c) ddigit=12;; D | d) ddigit=13;; E | e) ddigit=14;; F | f) ddigit=15;; [0-9]) ddigit=$digit;;

    • ) echo "Bad input. Only 0-9 and A-F are allowed."; exit 1;;

    esac factor=`echo "(16^$pos)" | bc` subresult=`echo "$factor*$ddigit" | bc` if [ ! -n "$1" ]; then echo "[$pos]: $digit => $ddigit * (16^$pos) = $ddigit * $factor = $subresult +" | boxes -d ada-cmt; fi let result=$result+$subresult let pos++ let length-- done

    if [ ! -n "$1" ]; then echo "Result: $hex (hex) is $result (dec)" | boxes -d ada-box; else echo "$hex (hex) = $result (dec)"; fi exit 0 </highlightSyntax>

     ./hex2dec.sh AFFE23
    AFFE23 (hex) = 11533859 (dec)
    
     ./hex2dec.sh
    Give me a hex number: F712
    -- [0]: 2 => 2 * (16^0) = 2 * 1 = 2 +
    -- [1]: 1 => 1 * (16^1) = 1 * 16 = 16 +
    -- [2]: 7 => 7 * (16^2) = 7 * 256 = 1792 +
    -- [3]: F => 15 * (16^3) = 15 * 4096 = 61440 +
    ---------------------------------------
    -- Result: F712 (hex) is 63250 (dec) --
    ---------------------------------------
    
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.