码迷,mamicode.com
首页 > 编程语言 > 详细

TCL语言笔记:TCL练习二

时间:2016-09-24 13:22:33      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

一、练习

1.二进制转十进制

proc b2d {b} {
    set sum 0;set len [string length $b]
    for {set i 0} {$i<$len} {incr i} {
        incr sum [expr int([string index $b $i]*pow(2,$len-$i-1))]
    }
    return $sum
}

2.十进制转二进制

proc d2b {d} {
    set b ""
    while {$d!=0} {
        set b "[expr $d%2]$b"
        set d [expr $d/2]
    }
    return $b
}

3.根据长度转换成子网掩码

proc len2mask {len} {
    set mask ""
    for {set i 0} {$i<4} {incr i} {
        if {$len>=8} {
            lappend mask [b2d [formatb 8 8]]
            incr len -8
        } else {
            lappend mask [b2d [formatb $len 8]]
            set len 0
        }
    }
    return [join $mask .]
}

4.根据子网掩码转换成长度

proc mask2len {mask} {
    set msks [split $mask .]
    set len 0
    for {set i 0} {$i<4} {incr i} {
        set m [lindex $msks $i]
        set str [d2b $m]
        incr len [string length [string trim $str 0]]
    }
    return $len
}

 

TCL语言笔记:TCL练习二

标签:

原文地址:http://www.cnblogs.com/huguodong/p/5902897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!