簡體   English   中英

Tcl,Perl中的算術表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM