我知道“<<
”有点操作。但我不明白它在TCL中的功能是什么,我们什么时候应该使用它?
任何人都可以帮我这个吗?
答案 0 :(得分:6)
Tcl表达式中的<<
运算符是arithmetic bit shift left。它非常类似于C和许多其他语言中的等价物,并且将在所有相同的地方使用(它在逻辑上相当于乘以2的适当幂,但通常建议在考虑位时使用移位和a在思考数字时会倍增。)
请注意,与许多其他语言(从Tcl 8.5开始)的一个关键区别在于它不会“从前面丢弃位”;语言实现会根据需要自动使用更多的表示,以便永远不会丢失信息。通过使用单独的二进制掩码操作(例如,& ((1 << $numBits) - 1)
)来丢弃位。
答案 1 :(得分:2)
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;左移操作员。我想到的一些是:
我相信还有很多其他人。
答案 2 :(得分:2)
例如,<<
操作与C没有太大区别。当你需要将整数值的位移到左边时使用它。在执行细微数字运算时,例如实现哈希函数或从输入字节流反序列化某些内容时,这偶尔会有用(但请注意,[binary scan]
几乎涵盖了此类事物所需的全部内容)。有关更一般的信息,请参阅this Wikipedia article或类似的内容,这与Tcl无关。
答案 3 :(得分:1)
'&lt;&lt;&lt;是左移位。您必须将其应用于整数。该算术运算符将位移到左侧。 例如,如果要在Tcl解释器tclsh中将数字1向左移动两次,请键入:
expr { 1 << 2 }
该命令将返回4.
请特别注意解释器在您的平台上保留的最大整数。