×
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
    mNo edit summary
    Line 31: Line 31:
    factor=`echo "(16^$pos)" | bc`
    factor=`echo "(16^$pos)" | bc`
    subresult=`echo "$factor*$ddigit" | bc`
    subresult=`echo "$factor*$ddigit" | bc`
    if [ ! -n "$1" ]; then echo "[$pos]: $digit => $ddigit * (16^$pos) = $ddigit * $factor = $subresult +"; fi
    if [ ! -n "$1" ]; then echo "[$pos]: $digit => $ddigit * (16^$pos) = $ddigit * $factor = $subresult +" | boxes -d ada-cmt; fi
    let result=$result+$subresult
    let result=$result+$subresult
    let pos++
    let pos++
    Line 37: Line 37:
    done
    done


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

    Revision as of 22:07, 12 November 2006

    <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.