用户工具

站点工具


语法:tcl语法速查

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
语法:tcl语法速查 [2025/08/20 12:59] – [7.7 list 嵌套] user01语法:tcl语法速查 [2026/04/08 09:41] (当前版本) – [6.5 set_bits get_bits] user01
行 469: 行 469:
  
  
-==== - com_number set_bits get_bits ====+==== - 产生递进的二进制数 ==== 
 + 
 +<file tcl t3.tcl> 
 +for {set i 0} {$i <16} {incr i} { 
 +    set hex_str [format "%04b" $i] 
 +    puts -nonewline "hex_str = $hex_str" 
 + 
 +    puts -nonewline "  bit\[3:0\] =" 
 +    for {set j 3} {$j >= 0} {incr j -1} { 
 +        set idx [expr 3-$j] 
 +        set bit_str [string range $hex_str $idx $idx] 
 +        puts -nonewline "  $bit_str" 
 +    } 
 +    puts "" 
 +
 +</file> 
 +运行结果: 
 + 
 +<code> 
 +hex_str = 0000  bit[3:0] =  0  0  0  0 
 +hex_str = 0001  bit[3:0] =  0  0  0  1 
 +hex_str = 0010  bit[3:0] =  0  0  1  0 
 +hex_str = 0011  bit[3:0] =  0  0  1  1 
 +hex_str = 0100  bit[3:0] =  0  1  0  0 
 +hex_str = 0101  bit[3:0] =  0  1  0  1 
 +hex_str = 0110  bit[3:0] =  0  1  1  0 
 +hex_str = 0111  bit[3:0] =  0  1  1  1 
 +hex_str = 1000  bit[3:0] =  1  0  0  0 
 +hex_str = 1001  bit[3:0] =  1  0  0  1 
 +hex_str = 1010  bit[3:0] =  1  0  1  0 
 +hex_str = 1011  bit[3:0] =  1  0  1  1 
 +hex_str = 1100  bit[3:0] =  1  1  0  0 
 +hex_str = 1101  bit[3:0] =  1  1  0  1 
 +hex_str = 1110  bit[3:0] =  1  1  1  0 
 +hex_str = 1111  bit[3:0] =  1  1  1  1 
 +</code> 
 + 
 +==== - set_bits get_bits ====
  
 <code tcl> <code tcl>
行 493: 行 530:
         default { set ret 0000 }         default { set ret 0000 }
     }     }
-    # set ret [format "%04b" "0x$h"] 
     return $ret     return $ret
 } }
行 502: 行 538:
     for {set i 0} {$i<$len} {incr i} {     for {set i 0} {$i<$len} {incr i} {
         set tmp [string range $hex_value $i $i]         set tmp [string range $hex_value $i $i]
-        #set bins [string cat $bins [format "%04b" "0x$tmp"]] 
         set tmp [h2b $tmp]         set tmp [h2b $tmp]
         set bins "$bins$tmp"         set bins "$bins$tmp"
行 521: 行 556:
     for {set i 0} {$i<[expr $len/4]} {incr i} {     for {set i 0} {$i<[expr $len/4]} {incr i} {
         set tmp [string range $bins [expr 0+$i*4] [expr 3+$i*4]]         set tmp [string range $bins [expr 0+$i*4] [expr 3+$i*4]]
-        #set hexs [string cat $hexs [format "%0x" "0b$tmp"]] 
         set tmp [format "%0x" "0b$tmp"]         set tmp [format "%0x" "0b$tmp"]
         set hexs "$hexs$tmp"         set hexs "$hexs$tmp"
行 666: 行 700:
 # 注意lrange返回的是由first 到last元素组成的数据,如果原来的元素是数组,会被转换成字符串。 # 注意lrange返回的是由first 到last元素组成的数据,如果原来的元素是数组,会被转换成字符串。
 % foreach i [lrange $c 0 0] { puts $i} % foreach i [lrange $c 0 0] { puts $i}
 +1 2
 +% set a [lrange $c 0 0]
 +{1 2}
 +% lindex $a 0; # a只有一个元素,那就是 “1 2”, a已经不是list了。
 1 2 1 2
 </code> </code>
行 948: 行 986:
 </code> </code>
  
 +字符串方式直接创建dict
 +<code tcl>
 +set mydict {
 +    a {
 +        num1 {1}
 +        num2 {2}
 +    }
 +    b {
 +        num3 {3}
 +        num4 {4}
 +    }
 +}
 +set a    [dict get $mydict a]
 +set num1 [dict get $a num1]
 +set num2 [dict get $a num2]
 +set b    [dict get $mydict b]
 +set num3 [dict get $b num3]
 +set num4 [dict get $b num4]
 +
 +</code>
  
 ==== - dict unset 删除某个key ==== ==== - dict unset 删除某个key ====
语法/tcl语法速查.1755665976.txt.gz · 最后更改: 2025/08/20 12:59 由 user01

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki