TCL是否包含get_位和set_位类型的内置函数?

TCL是否包含get_位和set_位类型的内置函数?,tcl,bit,Tcl,Bit,get_位将返回值的特定位,set_位将值的特定位设置为指定值。TCL是否包含内置的此类函数,还是应该由用户编写 二进制扫描命令与get_bits函数非常接近,但不同。没有用于获取或设置特定位的特定函数。我们可以做 proc get_bit {value bit} { expr {($value & (1 << $bit)) != 0} } proc set_bit {varName bit {value 1}} { upvar 1 $varName var

get_位将返回值的特定位,set_位将值的特定位设置为指定值。TCL是否包含内置的此类函数,还是应该由用户编写


二进制扫描命令与get_bits函数非常接近,但不同。

没有用于获取或设置特定位的特定函数。我们可以做

proc get_bit {value bit} {
    expr {($value & (1 << $bit)) != 0}
}

proc set_bit {varName bit {value 1}} {
    upvar 1 $varName var
    if {$value} {
        set var [expr {$var | (1 << $bit)}]
    } else {
        set var [expr {$var & ~(1 << $bit)}]
    }
}

那么,获取\u位并设置\u位,即多个位而不是仅设置一个bit@quantum231您可以根据提供的单位代码编写自己的代码?这些函数的签名是什么?返回值是什么?
# Lots of bits!
set x 123456789012345678901234567890

# Fetch a particular bit
puts [get_bit $x 17]
# Set a bit to 1
set_bit x 78
puts "x = $x"
# Set a bit to 0
set_bit x 75 0
puts "x = $x"