2011-04-25 56 views
3

我有這樣的AWK代碼:awk和()操作

val = and($1, 0x03FFFFFF) + $2 

我寫的Perl版本是這樣的:

$val = ($1 && 0x03FFFFFF) + $2; 

此行的一樣嗎?

+1

Perl附帶A2P果然AWK成Perl代碼。 – 2013-05-12 15:42:27

回答

6

不太 - 你想要一個&,不&&

$val = ($1 & 0x03FFFFFF) + $2; 

請注意,你是在正確的parenthesis are needed due to precedence


的詳細信息:

  • 您的awk表達式使用在gawk manual的ch中定義的and()。 「8.1.6 GAWK的位操作函數」 正是如此:

    和(V1,V2)=======返回按位由v1和v2提供的值和。

  • 因此,在Perl你想要一個位 「與」;不其中根據perldoc perlop邏輯一,是單個符號:「&