【问题标题】:Arithmetic expressions in Tcl, PerlTcl、Perl 中的算术表达式
【发布时间】:2016-01-19 13:16:09
【问题描述】:

我正在将 Perl 代码转换为 tcl。已完成大部分内容,但仍停留在一些逻辑和数学表达式中。寻求您的帮助:

第一行:

my $value = read_phy($phy, 0) | (0x1 << 15);

Line2:(和上一条有点相似)

my $value = (read_phy($phy, 23) & ~0x0700) | (0x00 << 8); 

对于第1行,经过多次尝试,我想在两个语句中打破逻辑但仍然无法清理编译:

    set temp_value  [phy_rd $devno 0] 
    set value [$temp_value | (0x1 << 15)]

第 3 行:

$regvalue &= ~0x0C000  

感谢您的帮助

【问题讨论】:

  • 一个有两个参数的函数

标签: perl tcl


【解决方案1】:

您需要 expr command 进行数学运算:

1

# my $value = read_phy($phy, 0) | (0x1 << 15);
set value [expr {[phy_rd $phy 0] | (0x1 << 15)}]

2

# my $value = (read_phy($phy, 23) & ~0x0700) | (0x00 << 8); 
set value [expr { ([phy_rd $phy 23] & ~0x0700) | (0x00 << 8)}]

3

# $regvalue &= ~0x0C000  
set regvalue [expr {$regvalue & ~0x0C000}]

另请阅读Brace your expr-essions

【讨论】:

  • 非常感谢格伦!!
猜你喜欢
  • 2011-01-25
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 2020-01-15
相关资源
最近更新 更多