2010年6月6日日曜日

AWKの数値計算関数と関連機能 - AWK

AWKの関数、変数、制御文 ▲
**** 数値計算の手引き
数値計算関数使用時の注意点まとめ
数値から文字列にする時に、実数を7桁以上表示させる方法
AWKプログラムの中で、8進数や16進数を使う方法
    + 配列操作は、「▼AWKの配列操作関数と関連機能」


**** 組み込み関数
o 基本
int = 実数や文字列を整数化する
strtonum = 10進数、8進数、16進数の文字列を数値に変換する(Gawk専用)
sqrt = 平方根を求める

o 三角関数
sin = 正弦を求める
cos = 余弦を求める
atan2 = 逆正接(arctan = アークタンジェント)を求める
  ラジアンの意味

o 指数と対数
log = 自然対数(ln)を求める
exp = 指数関数を求める

o 乱数
rand = 乱数を求める(擬似乱数)
srand = 乱数の種を設定する

o ビット操作
and = AND演算する。整数をビット毎に論理積(Gawk専用)
or = OR演算する。整数をビット毎に論理和(Gawk専用)
xor = XOR演算する。整数をビット毎に排他的論理和(Gawk専用)
compl = NOT演算する。整数の1の補数(Gawk専用)
lshift = 整数を左にビットシフトする(Gawk専用)
rshift = 整数を右にビットシフトする(Gawk専用)


**** 関係する変数
o 文字列にする時に使う値
OFMT = 数値から文字列への自動変換に使う書式その1。数値1つだけの時
CONVFMT = 数値から文字列への自動変換に使う書式その2。数値と文字列を結合する時


**** 関係する演算子
o 算術
+   = 加算
-   = 減算
*   = 乗算
/   = 除算(3/4 = 0.75)
%   = 剰余(割った余り)
^   = 累乗(= べき乗。2^3 = 2 * 2 * 2 = 8)
   + 「^」キーは、キーボードの右上にあります。数字の「0」キーの2つ右。

o 代入
=   = 代入
+=  = 加算して代入。(x += 39) の意味は (x = x + 39)
-=  = 減算して代入。(x -= 39) の意味は (x = x - 39)
*=  = 乗算して代入。(x *= 39) の意味は (x = x * 39)
/=  = 除算して代入。(x /= 39) の意味は (x = x / 39)
%=  = 剰余を求めて代入。(x %= 39) の意味は (x = x % 39)
^=  = 累乗して代入。(x ^= 39) の意味は (x = x ^ 39)
++  = 1を加算。++の位置で意味が変わります。
    + (y = ++x)の意味は、(y = (++x))
    + (y = x++)の意味は、(y = x; ++x)
--  = 1を減算。--の位置で意味が変わります。
    + (y = --x)の意味は、(y = (--x))
    + (y = x--)の意味は、(y = x; --x)

o 比較
==  = 等しい時に真。比較の時は、等号を2つ並べます。
!=  = 等しくない時に真
>   = 左辺よりも大きい時に真
>=  = 左辺よりも大きいか、等しい時に真
<   = 左辺よりも小さい時に真
<=  = 左辺よりも小さいか、等しい時に真
o この他に、文字列として比較する事も出来ます。但し、使い方によっては、有効桁が6桁程度に減るかもしれません。

o 条件演算
?:  = A ? B : Cの形。条件Aによって、どちらか1つの値を取ります。

数値計算機能サポート状況
名前Gawk on
Windows
3.1.7
Gawk for
Windows
3.1.6
mawk32
1.3.3
Mawk for
Windows
1.3.3
awk
(May 1,
2007)
説明
基本  
int○○○○○実数や文字列を整数化する
strtonum○○×××10進数、8進数、16進数の文字列を数値に変換する
sqrt○○△
(強制
終了
あり)
○△
(注記
あり)
平方根を求める
三角関数  
sin○○○○○正弦を求める
cos○○○○○余弦を求める
atan2○○○○○逆正接を求める
指数と対数  
log○○
(注記
あり)
△
(強制
終了
あり)
△
(強制
終了
あり)
△
(注記
あり)
自然対数(ln)を求める
exp△
(注記
あり)
△
(注記
あり)
△
(強制
終了
あり)
○○指数関数を求める
乱数  
rand○
(開始時
に注意)
○
(開始時
に注意)
○○○乱数を求める
srand○○○○○
(注記
あり)
乱数の種を設定する
ビット操作  
and○○×××AND演算する。整数をビット毎に論理積
or○○×××OR演算する。整数をビット毎に論理和
xor○○×××XOR演算する。整数をビット毎に排他的論理和
compl○△
(注記
あり)
×××NOT演算する。整数の1の補数
lshift○○
(注記
あり)
×××整数を左にビットシフトする
rshift○○×××整数を右にビットシフトする
変数。文字列にする時に使う値 
OFMT○○○○○printを使って数値1つだけを書き出す時の書式
CONVFMT○○○○○数値を文字列に自動変換する時の書式


==
関連ページ:
    ▼AWKの関数、変数、制御文(▼ABC順)
    ▼AWKプログラムを書く
    ▼AWK
    ▼制作メモ
    > ▼AWKの文字列操作関数と関連機能
    ▼AWKの時刻取得関数と関連機能
    ▼AWKの入出力関数とコマンド実行機能
    +
    ▼AWKの配列操作関数と関連機能
    ▼AWKのパターンと制御文