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のパターンと制御文