Tcl中的數學運算,即便是很簡單的兩個數相加,都要用到命令expr,看下面這個例子。在這個例子中,計算x1與x2之和時通過expr命令實現。可以看到如果直接寫{$x1 + $x2},給變量y1賦值,此時,Tcl解釋器把它們當作字符串處理,并不會完成相應的計算。但如果對變量y1使用expr命令,則可得到預期結果。
expr命令所支持的計算操作符是C語言中操作符的一個子集,并且寫法、優先級也和C語言中的完全一致,包括基本計算符(加、減、乘、除、取余)、關系運算符、邏輯運算符、移位運算符、按位邏輯運算符和三重運算符。除了數學計算操作符之外,expr還支持字符串的比較操作。這里不再羅列這些運算符的含義和使用方法,只給出一些簡單的例子。
這里特別強調一下,使用除法操作符時應注意,如果兩個操作數均為整數,那么結果仍然是整數。只要有一個是浮點數,那么結果就是浮點數。看下面這個例子。時鐘周期為3ns,對應頻率為333.33MHz。1/$period的結果為0,但1.0/$period和1/double($period)的結果就不是0。
Tcl本身還提供了許多數學函數,包括取整函數(ceil, floor, round等)、三角函數、反三角函數、對數函數和指數函數等。這里不再一一羅列,只給出一些例子。
最后,介紹一個新的命令incr,這個命令在描述for循環時會經常用到。該命令根據指定的步長來增加或減少參數的值。當步長為負時,減少參數值;當步長為正時,增加參數值。默認步長為+1。另外,incr后面直接跟變量名,并不需要變量置換符$,這也是很多初學者容易疏忽的地方。看下面這個例子。
結論:
-在Tcl中執行數學運算必須使用expr命令
-Tcl中的操作符與C語言保持一致
-Tcl本身提供了很多數學函數
-
C語言
+關注
關注
180文章
7604瀏覽量
136692 -
TCL
+關注
關注
10文章
1722瀏覽量
88566 -
數學
+關注
關注
0文章
99瀏覽量
19235
原文標題:Tcl中的數學運算
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論