[英]Arithmetic expressions in Tcl, Perl
我正在將Perl代碼轉換為tcl。 完成了大部分內容,但陷入了一些邏輯和數學表達式中。 尋求您的幫助:
第1行:
my $value = read_phy($phy, 0) | (0x1 << 15);
第2行:(與上一個相似)
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
謝謝你的幫助
您需要expr
命令進行數學運算:
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您的經驗
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.