首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TCL包含内置的get_bits和set_bits类型的函数吗?

TCL包含内置的get_bits和set_bits类型的函数吗?
EN

Stack Overflow用户
提问于 2021-02-24 19:21:02
回答 1查看 49关注 0票数 1

get_bits将返回值的特定位,而set_bits将值的特定位设置为指定值。TCL包含这样的内置函数吗?还是应该由用户自己编写?

二进制扫描命令确实很接近get_bits函数,但并不是一回事。

EN

回答 1

Stack Overflow用户

发布于 2021-02-24 20:16:26

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

代码语言:javascript
运行
复制
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)}]
    }
}

它们可以处理任何宽度的整数值;您不受32位或64位的限制。

代码语言:javascript
运行
复制
# 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"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66349844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档