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×××整数を右にビットシフトする
変数。文字列にする時に使う値 
OFMTprintを使って数値1つだけを書き出す時の書式
CONVFMT数値を文字列に自動変換する時の書式


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