ビット列関数

 投稿者:荒田浩二  投稿日:2009年 3月26日(木)14時47分32秒
  白石先生に質問です。

ビット列操作関数BVAL(b$,r),BSTR$(v,r)の第2引数は十進BASICでは2と16の数値定数しか認めていませんが、
JISを読むと数値式やr=8についても認めてもよいように思うのですがいかがでしょうか。

JISの「14.7 ビット列操作」「14.7.4 意味 (1)」の「表14.1 ビット列関数」に
『b$:文字列式;  r,v:指標;  rのとる値: 2, 8又は16だけ』
とありますが「附属書E 生成規則一覧」には
『5.2 指標 = 数値式』
とあります。(指標の定義は 5.2.4 (3)にあります)

また『2, 8又は16だけ』はおそらく "only 2, 8 or 16" のまずい直訳で、意味としては「2,8,16だけ」だと思います。
8についても定義することを要請しているように受け取れます。


いつも素人がわけのわからんことを主張して申し訳ございません。何かしらご教示をいただければ幸いです。
 

Re: ビット列関数

 投稿者:白石 和夫  投稿日:2009年 3月26日(木)18時22分29秒
  > No.310[元記事へ]

BVALとBSTR$はJIS Full BASICでは実時間機能単位で定義されています。
実時間機能を実装しようとすると面倒が多々出てくるので当面その予定はありません。
ですが,2進数,16進数の表現はできないと不便なのでJIS互換となるようにその機能を用意しています。
Full BASICのBVAL(s$,r),BSTR$(n,r)はrの部分を数値式で指定できますが,十進BASICでは定数のみです。
8進に対応するのはさほど難しくないのですが,現在のPC環境でその必要性を感じることがないので省いています。
 

Re: ビット列関数

 投稿者:荒田浩二  投稿日:2009年 3月26日(木)20時40分47秒
  > No.311[元記事へ]

早々にご回答いただきありがとうございます。

実時間機能を省いている以上、本来ビット列関数自体を定義する必要がなく、言わばサービスでつけているということですね。
私の誤解は、ビット列関数を他の組込み関数と同様に捉えていたところにあるようです。
丁寧にご説明いただき理解することができました。ありがとうございました。
 

戻る