注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

shell 二进制转换成十进制  

2010-09-02 13:55:50|  分类: shell脚本 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 1 #!/bin/sh
  2
  3 help()
  4 {
  5     cat <<HELP
  6 b2h -- convert binary to decimal
  7 USAGE: b2h [-h] binarynum
  8 OPTIONS: -h help text
  9 EXAMPLE: b2h 111010
 10 will return 58
 11 HELP
 12     exit 0
 13 }
 14
 15 error()
 16 {
 17     echo "$1"
 18     exit 1
 19 }
 20
 21 lastchar()
 22 {
 23     if [ -z "$1" ]; then
 24         rval=""
 25         return
 26     fi
 27     numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
 28     rval=`echo -n "$1" | cut -b $numofchar`
 29     if [[ "$rval" = "1"  || "$rval" = "0" ]]; then
 30         :
 31     else
 32         error "Your input is invalid, please input a binary and try again"
 33     fi
 34 }
 35
 36 chop()
 37 {
 38     if [ -z "$1" ]; then
 39         rval=""
 40         return
 41     fi
 42     numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
 43     if [ "$numofchar" = "1" ]; then
 44         rval=""
 45         return
 46     fi
 47     numofcharminus1=`expr $numofchar "-" 1`
 48     rval=`echo -n "$1" | cut -b 0-${numofcharminus1}`
 49 }
 50
 51 while [ -n "$1" ]; do
 52     case $1 in
 53         -h) help;shift 1;;
 54         --) shift;break;;
 55         -*) error "error: no such option $1. -h for help";;
 56         *) break;;
 57     esac
 58 done
 59
 60 # The main program
 61 sum=0
 62 weight=1
 63 [ -z "$1" ] && help
 64 binnum="$1"
 65 binnumorig="$1"
 66 while [ -n "$binnum" ]; do
 67     lastchar "$binnum"
 68     if [ "$rval" = "1" ]; then
 69         sum=`expr "$weight" "+" "$sum"`
 70     fi
 71     chop "$binnum"
 72     binnum="$rval"
 73     weight=`expr "$weight" "*" 2`
 74 done
 75 echo "binary $binnumorig is decimal $sum"

  评论这张
 
阅读(536)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017