Syn BASIC (オンラインBASICインタプリタ)(2)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) 次のページへ
2021年05月25日 公開。(ページ構成の変更により、以前の1ページ目の内容の一部を2ページ目に移動。)
2021年06月05日 Syn BASICで使える演算子を公開。

記事きじにふりがなをけたいときは、つぎのチェックボックスをクリックしてください。

2.Synシン BASICベーシック文法ぶんぽう

このしょうでは、Synシン BASICベーシック文法ぶんぽうについて解説かいせつします。

2-1.Synシン BASICベーシック使つかえるぶん命令めいれい

Synシン BASICベーシック使つかえるぶん命令めいれいを、ひょう2にしめします。

ひょう2には、パラメータという言葉ことばてきますが、これは、動作どうさ詳細しょうさい指定していするために、ぶん命令めいれい直後ちょくご数字すうじ文字もじれつことです。

たとえばGOTOゴートゥーぶんでは直後ちょくご行番号ぎょうばんごう指定していします。100ぎょうにジャンプするためのGOTOゴートゥーぶんGOTOゴートゥー 100ですが、GOTOゴートゥーあと100が、このGOTOゴートゥーぶんのパラメータです。

表2Synシン BASICベーシック使つかえるぶん命令めいれい
ぶん命令めいれい エイリアス 説明せつめい
BREAKぶん 中断ちゅうだん、ちゅうだん

FORフォーNEXTネクストのループからけ、NEXTネクストぶんつぎぶんまたは命令めいれいから実行じっこうします。BREAKぶんにパラメータはありません。

多重たじゅうループのなかでBREAKぶん使つかうと、一番いちばん内側うちがわのループをけます。FORフォーNEXTネクストのループのそとでBREAKぶん使つかうと、エラーになります。

BREAKぶん使つかうと、FORフォーぶん指定していした変数へんすうあたいは、BREAKぶん実行じっこうする直前ちょくぜんあたいのまま、ループをけます。たとえばつぎれいでは、実行じっこうすると3が表示ひょうじされます。

10 FOR I=1 TO 10
20   IF I=3 THEN BREAK
30 NEXT
40 PRINT I
CLSシーエルエスぶん 画面がめん消去しょうきょ、がめんをけせ

画面がめん消去しょうきょします。CLSシーエルエスぶんにパラメータはありません。

CONTINUEぶん つづけろ、つづけろ

CONTINUEぶんは、FORフォーNEXTネクストのループうち使つかいます。CONTINUEぶん実行じっこうすると、CONTINUEぶん以下いかぶん命令めいれい実行じっこうせずに、NEXTネクストぶんにジャンプします。

たとえば、

10 FOR I=-10 TO 10
20   IF I=0 THEN CONTINUE
30   PRINT 1/I
40 NEXT

というプログラムは、I=0のときだけ、30ぎょう実行じっこうしません。

ループそとでCONTINUEぶん使つかうとエラーになります。

DIMディムぶん 配列はいれつ、はいれつ

配列はいれつ宣言せんげんします。

DIMディム A(5)とすれば、A(0)~A(5)の6要素ようその1次元じげん配列はいれつ宣言せんげんされます。DIMディム B(3,4)とすれば、B(0,0)~B(3,4)の20要素ようそ2次元じげん配列はいれつ宣言せんげんされます。同様どうように、3次元じげん以上いじょう配列はいれつ宣言せんげんでき、配列はいれつ次元じげん上限じょうげんはありません。(メモリ容量ようりょう制約せいやくされます)

EDITエディット命令めいれい 編集へんしゅう、へんしゅう

指定していした行番号ぎょうばんごうのプログラムを編集へんしゅうしてさい入力にゅうりょくします。

EDITエディット 100とすれば、100ぎょうのプログラムをさい入力にゅうりょくします。

ENDエンドぶん われ、おわれ

プログラムの実行じっこう終了しゅうりょうします。ENDエンドぶんにパラメータはありません。

FORフォーTOトゥーSTEPステップぶん かえせ~最後さいごかずはば、くりかえせ~さいごのかず~はば

指定していした変数へんすうかず更新こうしんしながら、NEXTネクストぶんまでのループをかえ実行じっこうします。

FORフォーぶんつぎしょしき記述きじゅつします。

FORフォー 変数へんすう=初期値しょきち TOトゥー 最終値さいしゅうち STEPステップ 増分ぞうぶん

変数へんすうは、数値すうち単純たんじゅん変数へんすう(配列はいれつでない変数へんすう)でなければいけません。

FORフォーぶんは、まず変数へんすう初期値しょきち代入だいにゅうし、増分ぞうぶん指定していしたあたいだけ変数へんすうあたい増加ぞうかさせながら(増分ぞうぶんかず場合ばあい減少げんしょうさせながら)最終値さいしゅうちまで変化へんかさせ、NEXTネクストぶんまでのループをかえ実行じっこうします。増分ぞうぶんが1の場合ばあいは、STEPステップ 1記述きじゅつ省略しょうりゃくできます。

たとえばつぎのプログラムは、1から10までの整数せいすうちいさいじゅん表示ひょうじします。

10 FOR I=1 TO 10
20   PRINT I
30 NEXT I

またつぎのプログラムは、2から10までの偶かずちいさいじゅん表示ひょうじします。

10 FOR I=2 TO 10 STEP 2
20   PRINT I
30 NEXT I
          

さらにつぎのプログラムは、1から10までの数字すうじおおきいじゅん(10、9、…1のじゅん)に表示ひょうじします。

10 FOR I=10 TO 1 STEP -1
20   PRINT I
30 NEXT I
GOSUBゴーサブぶん おこなってこい、いってこい

指定していした行番号ぎょうばんごうまたはラベルのサブルーチンを実行じっこうします。

GOSUBゴーサブ 1000なら、1000ぎょうからはじまるサブルーチンを実行じっこうします。GOSUBゴーサブ *アスタLABELなら、*アスタLABELというラベルのあるぎょうからはじまるサブルーチンを実行じっこうします。

サブルーチンがわRETURNリターン実行じっこうすると、GOSUBゴーサブつぎぶんあるいは命令めいれいもどってきます。

GOTOゴートゥーぶん け、いけ

指定していした行番号ぎょうばんごうにジャンプします。(制御せいぎょうつします) GOTOゴートゥー 150なら、150ぎょうにジャンプします。GOTOゴートゥー *アスタLABELなら、*アスタLABELというラベルのあるぎょうにジャンプします。

INPUTインプットぶん け、きけ

変数へんすう内容ないようをユーザーにんでもらいます。

INPUTインプット Aなら、画面がめん?表示ひょうじされ、そのあとにユーザーが数字すうじんで[ENT]エンターすと、入力にゅうりょくした数字すうじ変数へんすうAに代入だいにゅうされます。INPUTインプット A$ドルよう文字もじれつ変数へんすうをパラメータとすると、文字もじれつ入力にゅうりょくもできます。INPUTインプット A,Bよう複数ふくすう変数へんすうをカンマ(,)で区切くぎってパラメータとすることもできます。この場合ばあいは、たとえば5,6[ENT]エンターという具合ぐあいに、ユーザーは数字すうじ変数へんすうかずおなじだけ、カンマで区切くぎって入力にゅうりょくする必要ひつようがあります。

変数へんすうのパラメータのまえに、文字もじれつ定数ていすう(ダブルクオートでかこった文字もじれつ)のパラメータをけると、ユーザーに変数へんすう入力にゅうりょく要求ようきゅうするときのメッセージを指定していできます。INPUTインプット "A:",Aように、文字もじれつ定数ていすうあとにカンマで区切くぎって変数へんすう指定していすると、画面がめんA:表示ひょうじしたあと入力にゅうりょくけます。INPUTインプット "A:";Aように、文字もじれつ定数ていすうあとにセミコロンで区切くぎって変数へんすう指定していすると、A:?と、指定していした文字もじれつ定数ていすうあと?表示ひょうじしたあと入力にゅうりょくけます。

IFイフTHENゼンELSEエルスぶん もし~なら~ちがえば~、もし~なら~ちがえば~

IFイフあと条件じょうけんしき評価ひょうかし、条件じょうけん成立せいりつしていればTHENゼン以降いこう命令めいれいやコマンドを実行じっこうし、条件じょうけん成立せいりつしていなければELSEエルス以降いこう命令めいれいやコマンドを実行じっこうします。

ELSEエルス以降いこう省略しょうりゃくすることができ、その場合ばあい条件じょうけん成立せいりつしないときは、なに実行じっこうしません。

条件じょうけんしきには通常つうじょう等号とうごう(=)や不等号ふとうごう(<、>など)を使つかった比較ひかくしき指定していします。たとえばA=3なら「変数へんすうAあたいが3である」という条件じょうけんしきになり、B>5なら「変数へんすうBあたいが5よりおおきい」という条件じょうけんしきになります。

IFイフ A>10 THENゼン PRINTプリント "おおきい" ELSEエルス PRINTプリント "ちいさい"というIFイフぶんかんがえると、変数へんすうAあたいが10よりおおきいときにこのIFイフぶん実行じっこうするとTHENゼン以降いこうPRINTプリント "おおきい"実行じっこうされ、画面がめんにはおおきい表示ひょうじされます。また変数へんすうAあたいが10以下いかときにこのIFイフぶん実行じっこうすると、ELSEエルス以降いこうPRINTプリント "ちいさい"実行じっこうされ、画面がめんにはちいさい表示ひょうじされます。

THENゼンELSEエルス直後ちょくごGOTOゴートゥーぶん場合ばあいは、GOTOゴートゥー省略しょうりゃくして行番号ぎょうばんごうまたはラベルだけをことができます。たとえばIFイフ A>10 THENゼン 100 ELSEエルス *アスタSTARTなら、変数へんすうAあたいが10よりおおきければ100ぎょうにジャンプし、そうでなければ、*アスタSTARTというラベルのあるぎょうにジャンプします。

KEYWORDSキーワーズ命令めいれい キーワード、きーわーど

Synシン BASICベーシック予約語よやくご表示ひょうじします。

LETレットぶん 代入だいにゅう、だいにゅう

代入だいにゅうぶん実行じっこうします。LETレットあとに、変数へんすうめい、イコール記号きごう(=)、数式すうしきじゅんくことで、変数へんすう数式すうしき計算けいさん結果けっか代入だいにゅうされます。

LETレット A=5+3なら、5+3の計算けいさん結果けっかの8が変数へんすうAに代入だいにゅうされます。LETレット省略しょうりゃくしてたんにA=5+3とくこともできます。

LETレット省略しょうりゃくできるため、通常つうじょうはプログラムなかLETレットことはありません。ふるBASICベーシックとの互換性ごかんせいのために用意よういされている予約語よやくごです。

LISTリスト命令めいれい リスト、りすと

入力にゅうりょくされているプログラムのリストをすべ表示ひょうじします。現在げんざいのバージョンでは、プログラムリストの一部いちぶだけを表示ひょうじする機能きのう実装じっそうされていません。

LOADロード命令めいれい ロード、ろーど

ローカルディスク(使用しようしているパソコン・スマートフォンとうHDDハードディスクドライブSSDソリッドステートドライブとう)に保存ほぞんしてあるBASICベーシックのプログラムをロードします。(プログラムをみます) LOADロード命令めいれいにはパラメータはありません。

ロードするプログラムの指定していは、LOADロード[ENT]エンター入力にゅうりょくしたあと画面がめんしたがわてくるボタンをクリックして、画面がめん表示ひょうじされるファイル一覧いちらんなかから選択せんたくします。

NEWニュー命令めいれい せ、けせ

入力にゅうりょくされているプログラムを消去しょうきょし、すべての変数へんすう初期化しょきかします。

NEXTネクストぶん えろ、かえろ

FORフォーぶんわせて使つかいます。FORフォーぶんNEXTネクストぶんはさまれた命令めいれいぶんかえ実行じっこうします。

PRINTプリントぶん け、かけ

指定していした数式すうしき計算けいさん結果けっか画面がめん表示ひょうじします。

PRINTプリント 1+2なら、1+2の計算けいさん結果けっか3画面がめん表示ひょうじします。

文字もじれつ数式すうしき計算けいさん結果けっか表示ひょうじできます。PRINTプリント "abc"+"def"なら、abcdef画面がめん表示ひょうじします。

セミコロン(;)またはカンマ(,)で区切くぎって複数ふくすう数式すうしき指定していすることもできます。PRINTプリント "abc";3とセミコロンで数式すうしき区切くぎると、abc3と、2つの数式すうしき計算けいさん結果けっかをつなげて表示ひょうじします。PRINTプリント "abc",3とカンマで数式すうしき区切くぎると、abc     3と、2つの数式すうしき計算けいさん結果けっかあいだにいくつかスペースをはさんで表示ひょうじします。

PRINTプリントぶん文末ぶんまつにセミコロンやカンマをこともできます。PRINTプリントぶんは、通常つうじょう数式すうしき計算けいさん結果けっか表示ひょうじしたあと改行かいぎょうしますが、PRINTプリント 3;数式すうしきあとにセミコロンをくと、3表示ひょうじしたあと改行かいぎょうしません。後続こうぞくするPRINTプリントぶんがあれば、文字もじが3につづいて表示ひょうじされます。PRINTプリント 3,数式すうしきあとにコロンをくと、3表示ひょうじしたあとにスペースをいくつか表示ひょうじして、改行かいぎょうしません。後続こうぞくするPRINTプリントぶんがあれば、3あとにスペースをいくつかいて文字もじ表示ひょうじされます。

RETURNリターンぶん もどれ、もどれ

サブルーチンを終了しゅうりょうしてメインルーチンにもどります。RETURNリターンぶんにパラメータはありません。

RETURNリターンぶんGOSUBゴーサブぶんされたサブルーチンうち使用しようする必要ひつようがあります。RETURNリターンぶん実行じっこうすると、サブルーチンをしたGOSUBゴーサブぶんつぎぶん(または命令めいれい)にジャンプします。

REMレムぶん ちゅう、ちゅう、'

プログラムに注釈ちゅうしゃく(コンピュータにとっては意味いみがないがプログラムを人間にんげんには参考さんこうになる情報じょうほう)をくためのぶんです。REMレムあとにスペースをひと以上いじょうはさんで、注釈ちゅうしゃくくことができます。

たとえば、プログラムで合計ごうけいもとめている部分ぶぶんがあるとして、その部分ぶぶんREMレム 合計ごうけいもとめると、REMレムぶん注釈ちゅうしゃくいておくと、あとでプログラムをなおとき参考さんこうになります。

REMレムのエイリアスとしてダッシュ(')が使つかえますから、'合計ごうけいもとめるとダッシュを使つかほうが、REMレムぶんはシンプルになります。なお、REMレム場合ばあいには、REMレム注釈ちゅうしゃくあいだにスペースが必要ひつようですが、'の場合ばあい直後ちょくご注釈ちゅうしゃくことができます。

Synシン BASICベーシックREMレムぶんつけると、そのぎょうのそれ以降いこうすべ注釈ちゅうしゃくとしてみ飛ばします。よって、REMレム PRINTプリント 3とした場合ばあいは、PRINTプリント 3部分ぶぶん注釈ちゅうしゃくとみなされますから、その部分ぶぶんが「3を表示ひょうじする」という意味いみ解釈かいしゃくされることはありません。(プログラムの改変かいへんに、参考さんこうのために改変かいへんまえのコードをのこしておきたい場合ばあいに、このれいようREMレムぶん使つかってコードの一部いちぶ注釈ちゅうしゃくにしておくことがよくあります。このようREMレムぶん使つかかたコメントアウトといいます)

RUNラン命令めいれい やれ

すべての変数へんすう初期化しょきかしてから、一番いちばん行番号ぎょうばんごうちいさいぎょうからプログラムを実行じっこうします。RUNラン命令めいれいにパラメータはありません。

SAVEセーブ命令めいれい セーブ、せーぶ

入力にゅうりょくされているプログラムをローカルディスク(使用しようしているパソコン・スマートフォンとうHDDハードディスクドライブSSDソリッドステートドライブとう)にセーブ(保存ほぞん)します。SAVEセーブ命令めいれいにはファイルめいをパラメータとして指定していしてください。

たとえばSAVEセーブ "abc.txt"とすると、abc.txtというファイルめいでプログラムをセーブします。ファイルめい拡張子かくちょうしは.txtになります。

SAVEセーブ命令めいれいでファイルめい拡張子かくちょうし省略しょうりゃくすると、自動じどうてきに.txtの拡張子かくちょうし付加ふかされます。たとえばSAVEセーブ "def"なら、def.txtというファイルめいでプログラムがセーブされます。

セーブさきのフォルダ(ディレクトリ)は、使用しようしているブラウザのデフォルトのダウンロードフォルダになります。

ちゅう:SAVEセーブ命令めいれいは、ブラウザのダウンロード機能きのう利用りようしてプログラムを保存ほぞんします。

BASICベーシックのプログラムには.BASの拡張子かくちょうしけることおおいですが、.BASの拡張子かくちょうしは、たいていのパソコンやスマートフォンではなんのアプリケーションにも関連付かんれんづけられておらず、ダブルクリックやタップをしても、内容ないよう確認かくにんすることができない不具合ふぐあい発生はっせいするため、Synシン BASICベーシックではSAVEセーブ命令めいれいでセーブするファイルの拡張子かくちょうしを.txtにしています。(.txtならメモちょうなどのアプリケーションに関連付かんれんづけられており、たいていの環境かんきょうひらくことができます)

WAITウェイトぶん て、まて

プログラムの実行じっこう一定いってい時間じかん停止ていしします。停止ていしする時間じかんmsミリびょう(ミリびょう)単位たんい指定していします。

1msミリびょう1/1000せんぶんのいちびょうなので、たとえば0.3びょう停止ていしするにはWAITウェイト 300とします。

プログラムが停止ていしする時間じかんはあまり正確せいかくではありませんので、目安めやす程度ていどかんがえてください。

2-2.Synシン BASICベーシック使つかえる関数かんすう

Synシン BASICベーシック使つかえる関数かんすうを、ひょう3にしめします。関数かんすうめい最後さいご$ドルいている関数かんすう(CHRシーエイチアール$ドルなど)といていない関数かんすう(SINサインなど)がありますが、関数かんすうめい最後さいご$ドルいている関数かんすう文字もじれつかえ関数かんすうで、関数かんすうめい最後さいご$ドルいていない関数かんすう数値すうちかえ関数かんすうです。

関数かんすうには通常つうじょう1つまたは複数ふくすう引数ひきすうがあります。たとえばSINサイン関数かんすうにはひとつの引数ひきすうがありますが、SINサイン(X)という具合ぐあいに、引数ひきすう(この場合ばあいはX)をまる括弧かっこでくくって、関数かんすうめいあときます。

またLEFTレフト$ドルには2つの引数ひきすうがあります。このよう複数ふくすう引数ひきすうがある場合ばあいは、LEFTレフト$ドル(A$ドル,3)ように、引数ひきすう(この場合ばあいはA$ドルと3)をカンマで区切くぎってならべます。

TIME$ドルよう引数ひきすうのない関数かんすうなかにはあります。引数ひきすうのない関数かんすうは、TIME$ドルという具合ぐあいに、まる括弧かっこ使つかわず表記ひょうきします。ただし、TIME$ドル()という具合ぐあいに、うしろにまる括弧かっこける表記ひょうきほうも、Synシン BASICベーシックでは文法ぶんぽうてき許容きょようします。おおくのBASICベーシック処理しょりけいでは、引数ひきすうのない関数かんすうまる括弧かっこける表記ひょうきをするとエラーになりますので、ほかBASICベーシックとの互換性ごかんせいかんがえないなら、まる括弧かっこけない表記ひょうきほうが好ましいです。

表3Synシン BASICベーシック使つかえる関数かんすう
関数かんすう エイリアス 説明せつめい
ABSエービーエス 絶対値ぜったいち、ぜったいち

数値すうち引数ひきすうり、その数値すうち絶対値ぜったいちかえします。

たとえば、ABSエービーエス(12.3)は12.3をかえします。ABSエービーエス(-12.3)も12.3をかえします。

参考さんこう:ABSエービーエスabsoluteアブソリュート valueバリュー(絶対値ぜったいちという意味いみ)の省略形しょうりゃくけいです。

ASCエーエスシー 文字もじコード、もじこーど

文字もじれつ引数ひきすうり、その文字もじれつの1文字もじ文字もじコードかえします。

たとえば、ASCエーエスシー("a")は97をかえします。

Synシン BASICベーシックは、内部ないぶ文字もじれつUTFユーティーエフ-16表現ひょうげんするため、ASCエーエスシー関数かんすうかえ文字もじコードは、UTFユーティーエフ-16表現ひょうげん文字もじコードです。UTFユーティーエフ-16は16ビットの文字もじコードですので、ASCエーエスシー関数かんすうは0~65535(65535は216-1)の範囲はんいかずかえします。

参考さんこう:ASCエーエスシーASCIIアスキー省略形しょうりゃくけいです。MBASICエムベーシックなどのふるBASICベーシックでは、ASCエーエスシー関数かんすうUTFユーティーエフ-16コードではなくASCIIアスキーコードをかえしていました。半角はんかく英数字えいすうじなど、ASCIIアスキーコードが128未満みまん文字もじについては、ASCIIアスキーコードもUTFユーティーエフ-16コードもおなかずになります。

ATNエーティーエヌ ぎゃく正接せいせつ、ぎゃくせいせつ

数値すうち引数ひきすうり、その数値すうちぎゃく正接せいせつ(アークタンジェント)をかえします。ATNエーティーエヌ関数かんすうは、角度かくどをラジアン表記ひょうきした数値すうちかえします。

参考さんこう:ATNエーティーエヌは、arcアーク tangentタンジェント(ぎゃく正接せいせつという意味いみ)の省略形しょうりゃくけいです。

CEILシール 天井てんじょう、てんじょう

数値すうち引数ひきすうり、その数値すうち以上いじょう最小さいしょう整数せいすうかえします。(天井てんじょう関数かんすう)

たとえば、CEILシール(3)は3をかえします。CEILシール(3.2)は4をかえします。CEILシール(-3)は-3をかえします。CEILシール(-3.2)は-3をかえします。

参考さんこう:ceilシールは「天井てんじょうる」というあじです。ceilingシーリング天井てんじょうという意味いみになります。

CHRシーエイチアール$ドル 文字もじ$ドル、もじ$ドル

数値すうち引数ひきすうり、その数値すうち文字もじコードとする文字もじかえします。(かえすのは1文字もじ文字もじれつ)

たとえば、CHRシーエイチアール$ドル(97)は"a"をかえします。

文字もじコードの種類しゅるいUTFユーティーエフ-16なので、引数ひきすうは0~65535(65535は216-1)の範囲はんいはいっている必要ひつようがあります。

参考さんこう:CHRシーエイチアールcharacterキャラクター(文字もじという意味いみ)の省略形しょうりゃくけいです。

CINTシーイント 四捨五入ししゃごにゅう、ししゃごにゅう

数値すうち引数ひきすうり、その数値すうち四捨五入ししゃごにゅうした整数せいすうかえします。

CINTシーイント(3.4)は3をかえします。CINTシーイント(3.5)は4をかえします。CINTシーイント(-3.4)は-3をかえします。CINTシーイント(-3.5)は-4をかえします。

参考さんこう:CINTシーイントのCはconvertコンバート(変換へんかんするという意味いみ)の頭文字かしらもじです。CINTシーイントINTイントintegerインテジャー(整数せいすうという意味いみ)の省略形しょうりゃくけいです。

COSコサイン 余弦よげん、よげん

数値すうち引数ひきすうり、その数値すうち余弦よげん(コサイン)をかえします。引数ひきすうは、ラジアン単位たんい指定していします。

参考さんこう:COSコサインcosineコサイン(余弦よげんという意味いみ)の省略形しょうりゃくけいです。

DATE$ドル づけ$ドル、ひづけ$ドル

ローカル時間じかん(ロケール設定せっていしたタイムゾーン)でのづけを、としつきじゅんに、かく2ケタで表示ひょうじし、それぞれのあいだ/スラッシュを挿入した形式けいしき(YY/スラッシュMM/スラッシュDDがたしき)でひょうした文字もじれつかえします。としについては、4けた西にしこよみした2けた表示ひょうじします。

たとえば、2026ねん1がつ23にちにDATE$ドル関数かんすうぶと、"26/スラッシュ01/スラッシュ23"という文字もじれつかえします。

この関数かんすう引数ひきすうはありません。

EXPイーエックスピー 指数しすう、しすう

数値すうち引数ひきすうり、その数値すうちの、ていネイピアすう(やく2.71828)とする指数しすう関数かんすうかえします。

参考さんこう:EXPイーエックスピーexponentialエクスポーネンシャル functionファンクション(指数しすう関数かんすうという意味いみ)の省略形しょうりゃくけいです。

FIXフィックス て、きりすて

数値すうち引数ひきすうり、その数値すうち整数部せいすうぶ(小数点しょうすうてん以下いかてたかず)をかえします。

たとえば、FIXフィックス(3.2)は3をかえします。FIXフィックス(-3.2)は-3をかえします。

INKEY$ドル キー入力にゅうりょく、きーにゅうりょく

キーボードでされたキーを、いち文字もじ文字もじれつかえします。INKEY$ドル関数かんすうには引数ひきすうはありません。

たとえばaのキーがされた場合ばあいは、INKEY$ドル"a"かえします。

ただし、SHIFイフTキーがされた状態じょうたいaのキーをした場合ばあいや、CAPS LOCKがかかった状態じょうたいaのキーをした場合ばあいは、INKEY$ドル"A"かえします。

キーがされていない場合ばあいは、INKEY$ドルから文字もじれつ("")をかえします。

BACKバック SPACEスペースキーがされた場合ばあいは、文字もじコードが8の文字もじ(CHRシーエイチアール$ドル(8))をかえします。またENTERエンターキーがされた場合ばあいは、文字もじコードが13の文字もじ(CHRシーエイチアール$ドル(13))をかえします。

1つのキーをしているあいだに、何回なんかいもINKEY$ドルされた場合ばあいは、最初さいしょの1かいのみ、キーに対応たいおうした文字もじれつかえし、2かい以降いこうから文字もじれつかえします。

INKEY$ドルでは、カーソルキーなど、文字もじ入力にゅうりょく使つかわないキーの押下おうか検出けんしゅつできません。

INTイント FLOORフロア整数せいすう、せいすう、ゆか、ゆか

数値すうち引数ひきすうり、その数値すうち以下いか最大さいだい整数せいすうかえします。(ゆか関数かんすう)

たとえば、INTイント(3)は3をかえします。INTイント(3.2)は3をかえします。INTイント(-3)は-3をかえします。INTイント(-3.2)は-4をかえします。

参考さんこう:INTイントintegerインテジャー(整数せいすうという意味いみ)の省略形しょうりゃくけいです。

LEFTレフト$ドル ひだり$ドル、ひだり$ドル

2つの引数ひきすうります。だい1引数ひきすう文字もじれつで、だい2引数ひきすう数値すうちです。だい1引数ひきすう文字もじれつひだりから、だい2引数ひきすう指定していした文字数もじすうだけした文字もじれつかえします。だい1引数ひきすう文字数もじすうだい2引数ひきすうよりみじか場合ばあいは、だい引数ひきすう全体ぜんたいかえします。

たとえば、LEFTレフト$ドル("abcdefgグラム",3)は、"abcdefgグラム"のひだりから3文字もじって、"abc"をかえします。LEFTレフト$ドル("abc",7)は、"abc"の文字数もじすう(3文字もじ)が7文字もじに満たないので、"abc"をかえします。

参考さんこう:leftレフトひだりというあじです。

LENエルイーエヌ ながさ、ながさ

文字もじれつ引数ひきすうり、その文字もじれつながさ(文字数もじすう)をかえします。Synシン BASICベーシックは、文字もじれつUTFユーティーエフ-16表現ひょうげんあつかうので、漢字かんじなどの全角ぜんかく文字もじも1文字もじとしてあつかいます。(サロゲートペアになる漢字かんじのぞく)

たとえば、LENエルイーエヌ("abcdefgグラム")は7をかえします。LENエルイーエヌ("2のリンゴ")は6をかえします。

参考さんこう:LENエルイーエヌは、lengthレンクス(ながさという意味いみ)の省略形しょうりゃくけいです。

LOGログ 対数たいすう、たいすう

数値すうち引数ひきすうり、その数値すうち自然しぜん対数たいすうかえします。

参考さんこう:LOGログlogarithmロガリズム(対数たいすうという意味いみ)の省略形しょうりゃくけいです。

MIDミッド$ドル なか$ドル、なか$ドル

2つまたは3つの引数ひきすうります。だい1引数ひきすう文字もじれつで、だい2引数ひきすうと(もしあれば)だい3引数ひきすう数値すうちです。

引数ひきすうが3つある場合ばあいだい1引数ひきすうだい2引数ひきすう番目ばんめ文字もじからだい3引数ひきすう指定していしたかずだけ文字もじし、文字もじれつとしてかえします。(部分ぶぶん文字もじれつ)

引数ひきすうが2つの場合ばあいは、だい1引数ひきすうだい2引数ひきすう番目ばんめ文字もじ以降いこう文字もじれつかえします。

たとえば、MIDミッド$ドル("abcdefgグラム",3,2)は、"abcdefgグラム"の3番目ばんめ文字もじから2文字もじって、"cd"をかえします。MIDミッド$ドル("abcdefgグラム",4)は、"abcdefgグラム"の4文字もじ以降いこうって、"defgグラム"をかえします。

参考さんこう:MIDミッドmiddleミドル(なかという意味いみ)の省略形しょうりゃくけいです。

NOW いま、いま

UTC(協定きょうてい世界せかい)での1970ねん1がつ1にち00ふん0びょうから現在げんざいまでの経過けいか時間じかんをミリびょう単位たんい整数せいすうかえします。

RIGHTライト$ドル みぎ$ドル、みぎ$ドル

2つの引数ひきすうります。だい1引数ひきすう文字もじれつで、だい2引数ひきすう数値すうちです。だい1引数ひきすう文字もじれつみぎから、だい2引数ひきすう指定していした文字数もじすうだけした文字もじれつかえします。だい1引数ひきすう文字数もじすうだい2引数ひきすうよりみじか場合ばあいは、だい1引数ひきすう全体ぜんたいかえします。

たとえば、RIGHTライト$ドル("abcdefgグラム",3)は、"abcdefgグラム"のみぎから3文字もじって、"efgグラム"をかえします。RIGHTライト$ドル("abc",7)は、"abc"の文字数もじすう(3文字もじ)が7文字もじに満たないので、"abc"をかえします。

参考さんこう:rightライトみぎというあじです。

RND らんすう、らんすう

0以上いじょう1未満みまんいちようらんすうかえします。この関数かんすう引数ひきすうはありません。

SGNエスジーエヌ 符号ふごう、ふごう

数値すうち引数ひきすうり、その数値すうち符号ふごうおうじたかずかえします。引数ひきすうせいかず場合ばあいは1をかえします。引数ひきすうが0の場合ばあいは0をかえします。引数ひきすうかず場合ばあいは-1をかえします。

たとえば、SGNエスジーエヌ(3.2)は1をかえします。SGNエスジーエヌ(0)は0をかえします。SGNエスジーエヌ(-3.2)は-1をかえします。

参考さんこう:SGNエスジーエヌsignサイン(符号ふごうという意味いみ)の省略形しょうりゃくけいです。

SINサイン 正弦せいげん、せいげん

数値すうち引数ひきすうり、その数値すうち正弦せいげん(サイン)をかえします。引数ひきすうは、ラジアン単位たんい指定していします。

参考さんこう:SINサインsineサイン(正弦せいげんという意味いみ)の省略形しょうりゃくけいです。

SQRエスキューアール 平方根へいほうこん、へいほうこん

数値すうち引数ひきすうり、その数値すうち平方根へいほうこんうちでないかずかえします。

たとえば、SQRエスキューアール(9)は3をかえします。

ちゅう:「9の平方根へいほうこん」は2じょうして9になるかずのを意味いみするので、3と-3の2つがあります。SQRエスキューアール(9)は、9の2つの平方根へいほうこんうちでないほうの3をかえします。Pascalパスカルなど、2じょうする関数かんすうSQRエスキューアール関数かんすうとし、でない平方根へいほうこんかえ関数かんすうSQRTエスキューアールティー関数かんすうとしているプログラム言語げんごがあるので、混同こんどうしないでください。

参考さんこう:SQRエスキューアールは、squareスクエア rootルート(平方根へいほうこん)の省略形しょうりゃくけいです。squareスクエアだけだと2じょうという意味いみになります。

STRエスティーアール$ドル 文字もじれつ$ドル、もじれつ$ドル

数値すうち引数ひきすうり、その数値すうち表現ひょうげんする文字もじれつかえします。STRエスティーアール$ドル(2.3)は"2.3"をかえします。

参考さんこう:STRエスティーアールstringストリング(文字もじれつという意味いみ)の省略形しょうりゃくけいです。

TANタンジェント 正接せいせつ、せいせつ

数値すうち引数ひきすうり、その数値すうち正接せいせつ(タンジェント)をかえします。引数ひきすうは、ラジアン単位たんい指定していします。

参考さんこう:TANタンジェントtangentタンジェント(正接せいせつという意味いみ)の省略形しょうりゃくけいです。

TIME$ドル 時刻じこく$ドル、じこく$ドル

ローカル時間じかん(ロケール設定せっていしたタイムゾーン)での時刻じこくを、ときふんびょうじゅんに、かく2ケタで表示ひょうじし、それぞれのあいだに:を挿入した形式けいしき(HH:MM:SSがたしき)でひょうした文字もじれつかえします。この関数かんすう引数ひきすうはありません。

たとえば、2115ふん7びょうにDATE$ドル関数かんすうぶと、"21:15:07"という文字もじれつかえします。

VALブイエーエル 数値すうち、すうち

文字もじれつ引数ひきすうり、その文字もじれつ数値すうちとして解釈かいしゃくした場合ばあい数値すうちかえします。

引数ひきすうなかのスペースはすべ無視むしします。また、引数ひきすう数値すうちとして解釈かいしゃくできない文字もじれつ場合ばあいは0をかえします。引数ひきすう途中とちゅうまで数値すうちとして解釈かいしゃくできて、途中とちゅうから数値すうちとして解釈かいしゃくできなくなる場合ばあいは、最初さいしょ数値すうちとして解釈かいしゃくできる部分ぶぶんのみを数値すうちしてかえします。

たとえば、VALブイエーエル("-2.5")は-2.5をかえします。VALブイエーエル(" - 2  . 5 ")も-2.5をかえします。(文字もじれつちゅうのスペースを無視むしするため) VALブイエーエル("-2.5abc012")も-2.5をかえします。("abc"は数値すうちとして解釈かいしゃくできないので、それ以降いこう無視むしされる)

参考さんこう:VALブイエーエルvalueバリュー(あたい)の省略形しょうりゃくけいです。

2-3.Synシン BASICベーシック使つかえる演算子えんざんし

このふしでは、Synシン BASICベーシック使つかえる演算子えんざんしについて説明せつめいします。

2-3-1.用語ようご説明せつめい

数式すうしきなかには、色々いろいろ演算えんざん(よん演算えんざんなど)をあらわ記号きごうてきます。たとえば、5+2-3という数式すうしきには、加算かさんあらわ+と、減算げんさんあらわ-の、2つの記号きごうてきます。これらの記号きごう演算子えんざんしといいます。

Synシン BASICベーシック演算子えんざんしにはたんこう演算子えんざんし2こう演算子えんざんしがあります。

参考さんこう:Synシン BASICベーシックには3こう演算子えんざんしはありません。

たんこう演算子えんざんしは、数値すうち文字もじれつまえいて使つか演算子えんざんしです。-5における-たんこう演算子えんざんしれいです。

2こう演算子えんざんしは、2つの数値すうちあるいは2つの文字もじれつあいだいて使つか演算子えんざんしです。1-2における-や、"abc"+"def"における+は、演算子えんざんしれいです。

たんこう演算子えんざんしあと数値すうち文字もじれつ、あるいは2こう演算子えんざんし前後ぜんご数値すうち文字もじれつことオペランドといいます。-5における5"abc"+"def"における"abc""def"は、オペランドのれいです。

2-3-2.演算子えんざんし一覧いちらん

ひょう4に、Synシン BASICベーシック使つかえる演算子えんざんし一覧いちらんしめします。

表4Synシン BASICベーシック使つかえる演算子えんざんし
演算子えんざんし 説明せつめい
+

この演算子えんざんしは、たんこう演算子えんざんしとしての使つかかたと2こう演算子えんざんしとしての使つかかたの2しゅるいがあります。

たんこう演算子えんざんしとして+使つか場合ばあいは、+直後ちょくご数値すうちき、演算えんざん結果けっか+直後ちょくご数値すうちおなあたいになります。たとえば+55おなじです。

2こう演算子えんざんしとして+使つか場合ばあいは、2つの数値すうちあいだ+場合ばあいと、2つの文字もじれつあいだ+場合ばあい意味いみことななります。

2つの数値すうちあいだ+場合ばあいは、2つのかず意味いみします。たとえば5+3は、演算えんざん結果けっかは5と3の、すなわち8となります。

2つの文字もじれつあいだ+場合ばあいは、それらの文字もじれつ連結れんけつする演算えんざん意味いみします。たとえば"abc"+"def"演算えんざん結果けっかは、"abcdef"となります。

-

この演算子えんざんしは、たんこう演算子えんざんしとしての使つかかたと2こう演算子えんざんしとしての使つかかたの2しゅるいがあります。

たんこう演算子えんざんしとして-使つか場合ばあいは、-直後ちょくご数値すうちき、演算えんざん結果けっか-直後ちょくご数値すうちに-1をけたあたい(正負せいふ符号ふごう反転はんてんさせたあたい)になります。たとえば-Aなら、演算えんざん結果けっか変数へんすうAのあたい正負せいふ符号ふごう反転はんてんさせたあたいになります。

2こう演算子えんざんしとして-使つか場合ばあいは、2つの数値すうちあいだ-きます。この場合ばあい演算えんざん結果けっかは、まえ数値すうちからうしろの数値すうちいたあたいになります。たとえば7-2なら、演算えんざん結果けっかは、7と2の、すなわち5になります。

*アスタ

この演算子えんざんしは、2こう演算子えんざんしで、2つの数値すうちあいだいて使つかいます。演算えんざん結果けっかは、2つの数値すうちせきになります。

たとえば、5*アスタ3演算えんざん結果けっかは、5と3のせきの15になります。

/スラッシュ

この演算子えんざんしは、2こう演算子えんざんしで、2つの数値すうちあいだいて使つかいます。演算えんざん結果けっかは、まえ数値すうちあと数値すうちったあたいになります。あと数値すうちが0の場合ばあいはエラーになります。

たとえば、5/スラッシュ2演算えんざん結果けっかは、5を2でったあたい、すなわち2.5になります。

÷

この演算子えんざんしは、/スラッシュ演算子えんざんしのエイリアスです。演算子えんざんしまえ数値すうち演算子えんざんしあと数値すうちったあたい演算えんざん結果けっかになります。あと数値すうちが0の場合ばあいはエラーになります。

たとえば、5÷2演算えんざん結果けっかは、5を2でったあたい、すなわち2.5になります。

^

べきじょう演算子えんざんしです。A^B演算えんざん結果けっかは、AのBじょうになります。

べきじょう演算子えんざんしひだり結合けつごうですので、A^B^C(A^B)^C解釈かいしゃくされます。

ちゅう:一部いちぶのプログラム言語げんごでは、べきじょう演算子えんざんしみぎ結合けつごうとして実装じっそうされているので、注意ちゅうい必要ひつようです。

たとえば、3^2演算えんざん結果けっかは、3の2じょう、すなわち9になります。

MOD

剰余演算子えんざんしです。A MOD B演算えんざん結果けっかは、AをBでったあまりになります。

A MOD BはAの小数点しょうすうてん以下いか四捨五入ししゃごにゅうしたかずを、Bの絶対値ぜったいち小数点しょうすうてん以下いか四捨五入ししゃごにゅうしたかずり、そのあまりをかえします。Aがかず場合ばあいは、A MOD Bかずになります。Bが0の場合ばあいはエラーになります。

たとえば、11 MOD 3演算えんざん結果けっかは、10を3でったあまり、すなわち2になります。-11 MOD 3演算えんざん結果けっかは、-2になります。11 MOD -3演算えんざん結果けっかは2になります。-11 MOD -3の演算えんざん結果けっか-2となります。

2つの数値すうちあいだ、または2つの文字もじれつあいだいて使つかいます。この演算子えんざんし演算えんざん結果けっかは、演算子えんざんしりょうがわ数値すうちまたは文字もじれつ一致いっちする場合ばあいに-1、一致いっちしない場合ばあいに0になります。

たとえば、5=5は-1になります。5=3は0になります。"ABC"="ABC"は-1になります。"ABC"="abc"は0になります。

<>

2つの数値すうちあいだ、または2つの文字もじれつあいだいて使つかいます。この演算子えんざんし演算えんざん結果けっかは、演算子えんざんしりょうがわ数値すうちまたは文字もじれつ一致いっちする場合ばあいに0、一致いっちしない場合ばあいに-になります。

たとえば、5<>5は0になります。5<>3は-1になります。"ABC"<>"ABC"は0になります。"ABC"<>"abc"は-1になります。

<

2つの数値すうちあいだ、または2つの文字もじれつあいだいて使つかいます。

2つの数値すうちあいだいて使つか場合ばあいは、まえ数値すうちあと数値すうちよりちいさい場合ばあいに、演算えんざん結果けっかが-1になり、それ以外いがい場合ばあい演算えんざん結果けっかが0になります。

2つの文字もじれつあいだいて使つか場合ばあいは、まえ文字もじれつほうあと文字もじれつより辞書じしょじゅん前方ぜんぽうにあれば演算えんざん結果けっかが-1になり、それ以外いがい場合ばあい演算えんざん結果けっかが0になります。

たとえば、5<3は0になります。5<5は0になります。5<7は-1になります。"ABC"<"AAA"は0になります。"ABC"<"ABC"は0になります。"ABC"<"ABCD"は-1になります。

<=

2つの数値すうちあいだ、または2つの文字もじれつあいだいて使つかいます。

2つの数値すうちあいだいて使つか場合ばあいは、まえ数値すうちあと数値すうちよりちいさいか、まえ数値すうちあと数値すうちとうしい場合ばあいに、演算えんざん結果けっかが-1になり、それ以外いがい場合ばあい演算えんざん結果けっかが0になります。

2つの文字もじれつあいだいて使つか場合ばあいは、まえ文字もじれつほうあと文字もじれつより辞書じしょじゅん前方ぜんぽうにあるか、まえ文字もじれつうしろの文字もじれつとうしい場合ばあい演算えんざん結果けっかが-1になり、それ以外いがい場合ばあい演算えんざん結果けっかが0になります。

たとえば、5<=3は0になります。5<=5は-1になります。5<=7は-1になります。"ABC"<="AAA"は0になります。"ABC"<="ABC"は-1になります。"ABC"<="ABCD"は-1になります。

>

2つの数値すうちあいだ、または2つの文字もじれつあいだいて使つかいます。

2つの数値すうちあいだいて使つか場合ばあいは、まえ数値すうちあと数値すうちよりおおきい場合ばあいに、演算えんざん結果けっかが-1になり、それ以外いがい場合ばあい演算えんざん結果けっかが0になります。

2つの文字もじれつあいだいて使つか場合ばあいは、まえ文字もじれつほうあと文字もじれつより辞書じしょじゅん後方こうほうにあれば演算えんざん結果けっかが-1になり、それ以外いがい場合ばあい演算えんざん結果けっかが0になります。

たとえば、5>3は-1になります。5>5は0になります。5>7は0になります。"ABC">"AAA"は-1になります。"ABC">"ABC"は0になります。"ABC">"ABCD"は0になります。

>=

2つの数値すうちあいだ、または2つの文字もじれつあいだいて使つかいます。

2つの数値すうちあいだいて使つか場合ばあいは、まえ数値すうちあと数値すうちよりおおきいか、まえ数値すうちあと数値すうちとうしい場合ばあいに、演算えんざん結果けっかが-1になり、それ以外いがい場合ばあい演算えんざん結果けっかが0になります。

2つの文字もじれつあいだいて使つか場合ばあいは、まえ文字もじれつほうあと文字もじれつより辞書じしょじゅん後方こうほうにあるか、まえ文字もじれつうしろの文字もじれつとうしい場合ばあい演算えんざん結果けっかが-1になり、それ以外いがい場合ばあい演算えんざん結果けっかが0になります。

たとえば、5>=3は-1になります。5>=5は-1になります。5>=7は0になります。"ABC">="AAA"は-1になります。"ABC">="ABC"は-1になります。"ABC">="ABCD"は0になります。

NOT

論理否定演算子えんざんしです。たんこう演算子えんざんしで、数値すうちまえいて使つかいます。

NOT演算子えんざんしは、まず後続こうぞく数値すうち符号ふごうき32ビット整数せいすう変換へんかんします。そのあとで、32ビットのそれぞれの論理ろんり否定ひていり、られたかず演算えんざん結果けっかになります。

つまり、NOT演算子えんざんし後続こうぞく数値すうち1の補かずかえします。

たとえば、NOT 0は-1になります。not 3は-4になります。not -3は2になります。

参考さんこう:0と-1をそれぞれ符号ふごうき4ビットの2進数しんすう(2の補かず表現ひょうげん)で表記ひょうきすると00001111になります。また3と-4をそれぞれ符号ふごうき4ビットの2進数しんすう(2の補かず表現ひょうげん)で表記ひょうきすると、00111100となります。また-3と2をそれぞれ符号ふごうき4ビットの2進数しんすう(2の補かず表現ひょうげん)で表記ひょうきすると、11010010となります。

AND

論理積演算子えんざんしです。2こう演算子えんざんしで、2つの数値すうちあいだいて使つかいます。

AND演算子えんざんしは、まず2つのオペランドを符号ふごうき32ビット整数せいすう変換へんかんします。そのあとで、32ビットのそれぞれのビットにおいて論理ろんりせきり、られた結果けっか演算えんざん結果けっかとします。

たとえば、10 AND 3は2になります。

参考さんこう:10、3、2を4けたの2進数しんすう表記ひょうきすると、それぞれ101000110010となります。

OR

論理和演算子えんざんしです。2こう演算子えんざんしで、2つの数値すうちあいだいて使つかいます。

OR演算子えんざんしは、まず2つのオペランドを符号ふごうき32ビット整数せいすう変換へんかんします。そのあとで、32ビットのそれぞれのビットにおいて論理ろんりり、られた結果けっか演算えんざん結果けっかとします。

たとえば、10 OR 3は11になります。

参考さんこう:10、3、11を4けたの2進数しんすう表記ひょうきすると、それぞれ101000111011となります。

XOR

排他的論理和演算子えんざんしです。2こう演算子えんざんしで、2つの数値すうちあいだいて使つかいます。

XOR演算子えんざんしは、まず2つのオペランドを符号ふごうき32ビット整数せいすう変換へんかんします。そのあとで、32ビットのそれぞれのビットにおいて排他的はいたてき論理ろんりり、られた結果けっか演算えんざん結果けっかとします。

たとえば、10 XOR 3は9になります。

参考さんこう:10、3、9を4けたの2進数しんすう表記ひょうきすると、それぞれ101000111001となります。

IMP

論理ろんり包含ほうがん演算子えんざんしです。2こう演算子えんざんしで、2つの数値すうちあいだいて使つかいます。論理学ろんりがくでは論理ろんり包含ほうがん演算子えんざんし使つかいますが、Synシン BASICベーシックでは IMPを使つかいます。

論理ろんり包含ほうがんとは、0→0=1、0→1=1、1→0=0、1→1=1で定義ていぎされる論理ろんり演算えんざんです。

IMP演算子えんざんしは、まず2つのオペランドを符号ふごうき32ビット整数せいすう変換へんかんします。そのあとで、32ビットのそれぞれのビットにおいて論理ろんり包含ほうがんり、られた結果けっか演算えんざん結果けっかとします。

たとえば、10 IMP 3は-9になります。

参考さんこう:10、3、-9を8けた符号ふごうき2進数しんすう(2の補かず表現ひょうげん)で表記ひょうきすると、それぞれ000010100000001111110111となります。

EQVボルト

論理ろんりどうあたい演算子えんざんしです。2こう演算子えんざんしで、2つの数値すうちあいだいて使つかいます。論理学ろんりがくでは論理ろんり包含ほうがん演算子えんざんし使つかいますが、Synシン BASICベーシックでは EQVボルト使つかいます。

論理ろんりどうあたいとは、0⇔0=1、0⇔1=0、1⇔0=0、1⇔1=1で定義ていぎされる論理ろんり演算えんざんです。すなわち、2つのオペランドがとうしいときに1、とうしくないときに0をかえします。否定ひてい排他的はいたてき論理ろんり(XNOR)ともばれます。

EQVボルト演算子えんざんしは、まず2つのオペランドを符号ふごうき32ビット整数せいすう変換へんかんします。そのあとで、32ビットのそれぞれのビットにおいて論理ろんりどうあたいり、られた結果けっか演算えんざん結果けっかとします。

たとえば、10 EQVボルト 3は-10になります。

参考さんこう:10、3、-10を8けた符号ふごうき2進数しんすう(2の補かず表現ひょうげん)で表記ひょうきすると、それぞれ000010100000001111110110となります。

2-3-3.ビット演算子えんざんしのオペランドの32ビット整数化せいすうか

NOT、AND、OR、XOR、IMP、EQVボルトの6しゅ演算子えんざんしを、ビット演算子えんざんしびます。

ビット演算子えんざんしは、数値すうち(倍精度ばいせいど浮動ふどう小数点しょうすうてん)をオペランドにりますが、演算えんざんするさいには、まず、オペランド符号ふごうき32ビット整数せいすう変換へんかんしてから演算えんざんおこないます。

オペランド(倍精度ばいせいど浮動ふどう小数点しょうすうてん)を符号ふごうき32ビット整数せいすうにするさいに、まず数値すうちを0にちかほうまるめて整数化せいすうかします。そして、その整数化せいすうかした数値すうちを2進数しんすうひょうしたときに、桁数けたすう(ビットかず)が32ビットをえていた場合ばあいには、下位かい32ビットをして演算えんざん対象たいしょうにします。(32ビット以内いない場合ばあいは、そのまま演算えんざん対象たいしょうにします)

れいとして、not 12345678901.23計算けいさんする場合ばあいについてかんがえます。オペランドを0にちかほうまるめると12345678901となります。これを2進数しんすう表記ひょうきすると、10 1101 1111 1101 1100 0001 1100 0011 0101と、34ビットのかずになります。(ビットかずおおいので、かりやすいように4ビットごとにスペースをれています) このかずは32ビットをえていますので、下位かい32ビットをると1101 1111 1101 1100 0001 1100 0011 0101られます。

上記じょうきのような操作そうさられた32ビットのかずがNOT演算えんざん(論理ろんり否定ひてい演算えんざん)の対象たいしょうになります。先程さきほどかずかくビットをそれぞれ論理ろんり否定ひていすると、0010 0000 0010 0011 1110 0011 1100 1010られます。このかず符号ふごうき32ビット整数せいすうとみなして10進数しんすう表現ひょうげんすると、演算えんざん結果けっかの539222986がられます。

このようにして、not 12345678901.23が539222986と計算けいさんされます。

次のページでは、Synシン BASICベーシック使つかってつくったプログラムのれい紹介しょうかいします。

2-3-4.演算子えんざんし優先順位ゆうせんじゅんい

1+2*アスタ3というしきは、加算かさんあらわ演算子えんざんし+よりもじょう算をあらわ演算子えんざんし*アスタほう優先ゆうせんされて計算けいさんされますので、1+2*アスタ3=1*アスタ6=7計算けいさんされます。このように、演算子えんざんしには優先順位ゆうせんじゅんいまっており、優先順位ゆうせんじゅんいたか演算子えんざんしからじゅん計算けいさんすすみます。

ひょう5に、演算子えんざんし優先順位ゆうせんじゅんいしめします。

優先順位ゆうせんじゅんいひく演算子えんざんし計算けいさんさきにしたい場合ばあいは、さき計算けいさんしたい部分ぶぶんまる括弧かっこくくります。たとえば、1+2と3のせき計算けいさんしたい場合ばあいは、(1+2)*アスタ3記述きじゅつします。

>
表5Synシン BASICベーシック演算子えんざんし優先順位ゆうせんじゅんい
優先順位ゆうせんじゅんい 演算子えんざんし 演算子えんざんし種類しゅるい
1 ^ べき演算子えんざんし
2 +、- 符号ふごう(たんこう演算子えんざんし)
3 *アスタ/スラッシュ、÷ じょう演算子えんざんし、除算演算子えんざんし
4 MOD 剰余
5 +、- 加算かさん減算げんさん(2こう演算子えんざんし)
6 =、<>、<、>、<=、>= 関係かんけい演算子えんざんし
7 NOT 論理ろんり否定ひてい演算子えんざんし
8 AND 論理ろんりせき演算子えんざんし
9 OR 論理ろんり演算子えんざんし
10 XOR 排他的はいたてき論理ろんり演算子えんざんし
11 IMP 論理ろんり包含ほうがん演算子えんざんし
12 EQVボルト 論理ろんりどうあたい演算子えんざんし
目次へ  前のページへ (1) (2) (3) (4) (5) (6) 次のページへ

このページで使われている用語の解説

関連ページ

Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。
こちらのページもおすすめです。