■ BASCOM-AVR (DEMO) の使用方法 ■
命令文のリファレンス・マニュアル 使用方法のページへ戻る
算術関数 演算子に関する命令
SIN 正弦(サイン)を求めます。
COS 余弦(コサイン)を求めます。
TAN 正接(タンジェント)を求めます。
ASIN 逆正弦(アークサイン)を求めます。
ACOS 逆余弦(アークコサイン)を求めます。
ATN 逆正接(アークタンジェント)を求めます。
ATN2 全四象限の逆正接(アークタンジェント)を求めます。
SINH 双曲線の正弦(ハイパボリックサイン)を求めます。
COSH 双曲線の余弦(ハイパボリックコサイン)を求めます。
TANH 双曲線の正接(ハイパボリックタンジェント)を求めます。
RAD2DEG ラジアン(弧度)を角度に変換します。
DEG2RAD 角度をラジアン(弧度)に変換します。
SQR 平方根を求めます。
EXP 指数関数(べき乗)を求めます。
POWER 正の浮動小数点型変数専用の、べき乗計算を行います。
LOG 対数関数(自然対数eを底とする)を求めます。
LOG10 対数関数(常用対数10を底とする)を求めます。
INT シングル型(単精度)またはダブル型(倍精度)の、整数部分を取り出します。
FIX 小数点以下の桁を、より0に近い値にして、整数化します。
ROUND 小数点以下の桁を、四捨五入します。
FRAC シングル型(単精度)の小数部分を取り出します。
ABS 絶対値を求めます。
SGN 浮動小数点型変数の符号を調べます。(正の数=1・ 0=0・負の数=-1)
RND 乱数を発生させます。
CONFIG RND RND命令(乱数の発生)の、出力のビット幅を設定します。



SIN 一覧へ戻る
正弦(サイン)を求めます。

書式 variable = Sin(source)
注釈
variable = 正弦の値を入れる数値変数名。
source = 正弦を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 COS , TAN , RAD2DEG , DEG2RAD

 
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
 
(例)
Dim S As Single , X As Single ' 使用する変数を宣言。
S = 90 ' テスト用の数値を代入。
S = Deg2rad(s) : Print S ' 角度をラジアンに変換。 (1.570796247)
X = Sin(s) : Print X ' 正弦(サイン)を求める。 (0.99999332)
End ' プログラムの終了。



COS 一覧へ戻る
余弦(コサイン)を求めます。

書式 variable = Cos(single)
注釈
variable = 余弦の値を入れる数値変数名。
single = 余弦を求める数値変数名。 シングル型(単精度)

参照 SIN , TAN , RAD2DEG , DEG2RAD

 
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
 
(例)
Dim S As Single , X As Single ' 使用する変数を宣言。
S = 60 ' テスト用の数値を代入。
S = Deg2rad(s) : Print S ' 角度をラジアンに変換。 (1.047197459)
X = Cos(s) : Print X ' 余弦(コサイン)を求める。 (0.499994093)
End ' プログラムの終了。



TAN 一覧へ戻る
正接(タンジェント)を求めます。

書式 variable = Tan(source)
注釈
variable = 正接の値を入れる数値変数名。
source = 正接を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 SIN , COS , RAD2DEG , DEG2RAD

 
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
 
(例)
Dim S As Single , X As Single ' 使用する変数を宣言。
S = 45 ' テスト用の数値を代入。
S = Deg2rad(s) : Print S ' 角度をラジアンに変換。 (0.785398121)
X = Tan(s) : Print X ' 正接(タンジェント)を求める。 (0.999999576)
End ' プログラムの終了。



ASIN 一覧へ戻る
逆正弦(アークサイン)を求めます。

書式 variable = Asin(x)
注釈
variable = 逆正弦の値を入れる数値変数名。
x = 逆正弦を求める数値変数名。  シングル型(単精度)

参照 ACOS , ATN , ATN2 , RAD2DEG , DEG2RAD

 
xは、−1から+1までの範囲で、求められる結果は、−π/2から+π/2までの範囲です。
・もし入力が−1より小さい場合は−π/2が返され、1より大きい場合はπ/2が返されます。
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
 
(例)
Dim S As Single , X As Single ' 使用する変数を宣言。
X = 1 ' テスト用の数値を代入。
S = Asin(x) : Print S ' 逆正弦(アークサイン)を求める。 (1.570796366)
S = Rad2deg(s) : Print S ' ラジアンを角度に変換。 (90.0)
End ' プログラムの終了。



ACOS 一覧へ戻る
逆余弦(アークコサイン)を求めます。

書式 variable = Acos(x)
注釈
variable = 逆余弦の値を入れる数値変数名。
x = 逆余弦を求める数値変数名。  シングル型(単精度)

参照 ASIN , ATN , ATN2 , RAD2DEG , DEG2RAD

 
xは、−1から+1までの範囲で、求められる結果は、0からπまでの範囲です。
・もし入力が−1より小さい場合は0が返され、1より大きい場合はπが返されます。
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
 
(例)
Dim S As Single , X As Single ' 使用する変数を宣言。
X = 0 ' テスト用の数値を代入。
S = Acos(x) : Print S ' 逆余弦(アークコサイン)を求める。 (1.570796366)
S = Rad2deg(s) : Print S ' ラジアンを角度に変換。 (90.0)
End ' プログラムの終了。



ATN 一覧へ戻る
逆正接(アークタンジェント)を求めます。

書式 variable = Atn(single)
注釈
variable = 逆正接の値を入れる数値変数名。
single = 逆正接を求める数値変数名。 シングル型(単精度)

参照 ASIN , ACOS , ATN2 , RAD2DEG , DEG2RAD

 
・求められる結果は、−π/2 (−90°)から+π/2 (+90°)までの範囲です。
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
 
(例)
Dim S As Single ' 使用する変数を宣言。
S = Atn(1) : Print S ' 逆正接(アークタンジェント)を求める。 (0.78539818)
S = S * 4 : Print S ' 結果を4倍する。 (3.141592736) π
End ' プログラムの終了。



ATN2 一覧へ戻る
全四象限の逆正接(アークタンジェント)を求めます。

書式 variable = Atn2(y , x)
注釈
variable = 全四象限の逆正接の値を入れる数値変数名。
y = Y-方向の距離を入れる数値変数名。 シングル型(単精度)
x = X-方向の距離を入れる数値変数名。 シングル型(単精度)

参照 ASIN , ACOS , ATN , RAD2DEG , DEG2RAD

 
・求められる結果は、−π (−180°)から+π (+180°)までの範囲です。 (全円)
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
 
(例)
Dim S As Single ' 使用する変数を宣言。
Dim X As Single , Y As Single ' 使用する変数を宣言。
X = 1 : Y = 1 ' テスト用の数値を代入。
S = Atn2(y , X) : Print S ' 全四象限の逆正接を求める。 (0.78540468)
S = Rad2deg(s) : Print S ' ラジアンを角度に変換。 (45.000373839) 45°
End ' プログラムの終了。



SINH 一覧へ戻る
双曲線の正弦(ハイパボリックサイン)を求めます。

書式 variable = Sinh(source)
注釈
variable = 双曲線の正弦の値を入れる数値変数名。
source = 双曲線の正弦を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 COSH , TANH , RAD2DEG , DEG2RAD

 
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。



COSH 一覧へ戻る
双曲線の余弦(ハイパボリックコサイン)を求めます。

書式 variable = Cosh(single)
注釈
variable = 双曲線の余弦の値を入れる数値変数名。
single = 双曲線の余弦を求める数値変数名。 シングル型(単精度)

参照 SINH , TANH , RAD2DEG , DEG2RAD

 
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。



TANH 一覧へ戻る
双曲線の正接(ハイパボリックタンジェント)を求めます。

書式 variable = Tanh(source)
注釈
variable = 双曲線の正接の値を入れる数値変数名。
source = 双曲線の正接を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 SINH , COSH , RAD2DEG , DEG2RAD

 
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。



RAD2DEG 一覧へ戻る
ラジアン(弧度)を角度に変換します。

書式 variable = Rad2deg(source)
注釈
variable = 変換された角度の値を入れる数値変数名。
source = ラジアン(弧度)を入れる数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 DEG2RAD

 
(例) ASIN命令を参照。



DEG2RAD 一覧へ戻る
角度をラジアン(弧度)に変換します。

書式 variable = Deg2rad(source)
注釈
variable = 変換されたラジアン(弧度)の値を入れる数値変数名。
source = 角度を入れる数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 RAD2DEG

 
(例) SIN命令を参照。



SQR 一覧へ戻る
平方根を求めます。

書式 variable = Sqr(source)
注釈
variable = 平方根の値を入れる数値変数名。
source = 平方根を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 EXP , POWER , LOG , LOG10
 

 
(例)
Dim S As Single ' 使用する変数を宣言。
S = 9 ' テスト用の数値を代入。
S = Sqr(s) : Print S ' 平方根を求める。 (3.0)
End ' プログラムの終了。



EXP 一覧へ戻る
指数関数(べき乗)を求めます。

書式 variable = Exp(source)
注釈
variable = 指数関数(べき乗)の値を入れる数値変数名。
source = 指数関数(べき乗)を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 SQR , POWER , LOG , LOG10

 
(例)
Dim S As Single ' 使用する変数を宣言。
S = 1 ' テスト用の数値を代入。
S = Exp(s) : Print S ' 指数関数(べき乗)を求める。 (2.718281743)
End ' プログラムの終了。



POWER 一覧へ戻る
正の浮動小数点型変数専用の、べき乗計算を行います。

書式 variable = Power(source , raise)
注釈
variable = べき乗の値を入れる数値変数名。
source = べき乗を求める底の数値変数名。 シングル型(単精度)、ダブル型(倍精度)
raise = べき乗を求める指数の数値変数名。 シングル型(単精度)、ダブル型(倍精度

参照 SQR , EXP , LOG , LOG10

 
・POWER関数は、正の浮動小数点変数だけに使用できます。
・[^] (べき乗)は、符号が使用できます。
・POWER関数は、[^] (べき乗)よりも、コンパイル時のコードが少なくなります。
 
(例)
Dim S1 As Single , S2 As Single ' 使用する変数を宣言。
S1 = 2.5 : S2 = 4 ' テスト用の数値を代入。
S1 = Power(s1 , S2) : Print S1 ' べき乗を求める。 (39.062492367 約39.0625)
End ' プログラムの終了。



LOG 一覧へ戻る
対数関数(自然対数eを底とする)を求めます。

書式 variable = Log(single)
注釈
variable = 対数関数(eを底とする)の値を入れる数値変数名。
single = 対数関数(eを底とする)を求める数値変数名。 シングル型(単精度)

参照 SQR , EXP , POWER , LOG10

 
(例)
Dim S As Single ' 使用する変数を宣言。
S = 2.718281743 ' テスト用の数値を代入。
S = Log(s) : Print S ' 対数関数(自然対数eを底とする)を求める。 (1.0)
End ' プログラムの終了。



LOG10 一覧へ戻る
対数関数(常用対数10を底とする)を求めます。

書式 variable = Log10(single)
注釈
variable = 対数関数(10を底とする)の値を入れる数値変数名。
single = 対数関数(10を底とする)を求める数値変数名。 シングル型(単精度)

参照 SQR , EXP , POWER , LOG

 
(例)
Dim S As Single ' 使用する変数を宣言。
S = Log10(1000) : Print S ' 対数関数(常用対数10を底とする)を求める。 (3.0)
End ' プログラムの終了。



INT 一覧へ戻る
シングル型(単精度)またはダブル型(倍精度)の、整数部分を取り出します。

書式 variable = Int(source)
注釈
variable = 整数部分の値を入れる数値変数名。
source = 整数部分を取り出す数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 FIX , ROUND , FRAC

 
・整数部は、小数点の左側です。
 
(例)
Dim S As Single , I As Integer ' 使用する変数を宣言。
S = 1234.567 ' テスト用の数値を代入。
I = Int(s) : Print I ' 整数部分を取り出す。 (1234)
End ' プログラムの終了。



FIX 一覧へ戻る
小数点以下の桁を、より0に近い値にして、整数化します。

書式 variable = Fix(single)
注釈
variable = 整数化をした値を入れる数値変数名。
single = 整数化をする数値変数名。 シングル型(単精度)

参照 INT , ROUND , FRAC

 
・整数部は、小数点の左側です。
 
(例)
Dim S As Single ' 使用する変数を宣言。
S = -1.5 ' テスト用の数値を代入。
Print Int(s) ' INTの場合。 (-2.0)
Print Fix(s) ' FIXの場合。 (-1.0)
End ' プログラムの終了。



ROUND 一覧へ戻る
小数点以下の桁を、四捨五入します。

書式 variable = Round(source)
注釈
variable = 四捨五入をした値を入れる数値変数名。
source = 四捨五入をする数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 INT , FIX , FRAC

 
・整数部は、小数点の左側です。
 
(例)
Dim S As Single , I As Integer ' 使用する変数を宣言。
S = 2.3 ' テスト用の数値を代入。
I = Round(s) : Print I ' 四捨五入をする。 (2)
S = 2.8 ' テスト用の数値を代入。
I = Round(s) : Print I ' 四捨五入をする。 (3)
End ' プログラムの終了。



FRAC 一覧へ戻る
シングル型(単精度)の小数部分を取り出します。

書式 variable = Frac(single)
注釈
variable = 小数部分の値を入れる数値変数名。
single = 小数部分を取り出す数値変数名。 シングル型(単精度)

参照 INT , FIX , ROUND

 
・小数部は、小数点の右側です。
 
(例)
Dim S As Single ' 使用する変数を宣言。
S = 1234.567 ' テスト用の数値を代入。
S = Frac(s) : Print S ' 小数部分を取り出す。 (0.567016601)
End ' プログラムの終了。



ABS 一覧へ戻る
絶対値を求めます。

書式 variable = Abs(source)
注釈
variable = 絶対値を入れる数値変数名。 (Integer , Long , Single , Double)
source = 絶対値を求める数値変数名。 (Integer , Long , Single , Double)

参照 SGN

 
・数の絶対値は常に正です。
 
(例)
Dim I As Integer ' 使用する変数を宣言。
I = -1000 ' テスト用の数値を代入。
I = Abs(i) : Print I ' 絶対値を求める。 (1000)
End ' プログラムの終了。



SGN 一覧へ戻る
浮動小数点型変数の符号を調べます。(正の数=1・ 0=0・負の数=-1)

書式 variable = Sgn(source)
注釈
variable = 符号値を入れる数値変数名。
source = 符号を調べる数値変数名。 シングル型(単精度)、ダブル型(倍精度)

参照 ABS

 
・0以下の値は、-1が返されます。
・0は、0が返されます。
・0以上の値は、1が返されます。
 
(例)
Dim S As Single , I As Integer ' 使用する変数を宣言。
S = -12.345 ' テスト用の数値を代入。
I = Sgn(s) : Print I ' 符号を調べる。 (-1)
End ' プログラムの終了。



RND 一覧へ戻る
乱数を発生させます。

書式 variable = Rnd(limit)
注釈
variable = 乱数の値を入れる数値変数名。 (バイト型、ワード型、インテジャー型)
limit = 乱数の上限を設定する、定数または変数。 (バイト型、ワード型)

参照 CONFIG RND

 
・発生する乱数は、正の値で0から(limit値−1)の範囲です。
RND命令を実行するたびに、新しい乱数値が得られます。
・発生する乱数は、ソフトウェアで生成される値なので、プログラムを起動するたびに同じ系列の
 乱数になります。
・変数[___RSEED] (ワード型)を宣言し、タイマー等の値をこの変数に入れることで、系列を変える
 ことができます。
 
(例)
Dim W As Word , I As Byte ' 使用する変数を宣言。
Dim ___rseed As Word ' 使用する変数を宣言。
___rseed = 12345 ' 乱数系列を変更する。
For I = 1 To 10 ' 10回の繰り返し処理。
W = Rnd(100) ' (0〜99)の範囲の乱数を発生させる。
Print W ' 乱数値を出力。
Next I '
End ' プログラムの終了。


CONFIG RND 一覧へ戻る
RND命令(乱数の発生)の、出力のビット幅を設定します。

書式 Config Rnd = value
注釈
value = 出力のビット幅。 (16:16ビット , 32:32ビット)

参照 RND

 
・RND命令の初期状態では、16ビットの乗算と除算を使用して乱数が作成されます。
・このため、乱数の最大数はワード(16ビット)に制限されます。
・変数[___RSEED] (変数の系列の初期値)はWORD型です。
 
・より大きな乱数が必要な場合は、Config Rnd = 32を使用します。
・32ビットの分解能を使用する場合、指定された数で制限するために除算だけが使用されます。
・32ビットを使用する場合、[___RSEED] はWORD型ではなくDWORD型になります。





   電子工作の部屋 Top へ 前のページへ戻る