

30年前くらいに、N88-BASICで動かしていたソースコードを動かす必要があり、「N88互換BASIC for Windows95」を使用しています。

CVI,CVSやMKS$の関数には対応していないらしく、コードが動きません。以下のような処理をしたいのですが、CVI,CVSやMKS$の処理に代わる処理方法をご存じの方がいましたら、教えて頂けますと有難く存じます。

記

・CVI

[code]

     Nz(I,J)=CVI(MID$(P,J1,2)) AND &HFFF
    
     Nz(I,J+1)=CVI(MID$(P,J1+1,2))/&H10
    
[/code]

・CVS

[code]

     W1=CVS(MID$(P$,J1,4))
    
[/code]

・MKS$

[code]

     LSET SOLF$(J,L)=MKS$(SOL(J,L))
    
[/code]


CC BY-SA 4.0
2023-09-13T21:53:39.660
96206
2023-09-14T12:23:59.293
2023-09-14T12:23:59.293
3060
50731
question
basic
BASICのCVI,CVSやMKS$の関数処理について


`CVI` `CVS` `CVD` は `MKI$` `MKS$` `MKD$` の逆の変換です。 `MKI$` `MKS$` `MKD$`
はそれぞれ整数値、単精度実数値、倍精度実数値をその **内部表現どおり** に文字列 (バイト列) に置き換えます。

つまり例えば `cvi("ab")` に対応するのは

[code]

    10 x$="ab"
    20 print asc(mid$(x$,1,1))+asc(mid$(x$,2,1))*256
    
[/code]

というような処理です。

実数 (浮動小数点) の場合は内部表現が少し複雑ですが形式は [IEEE
754](https://ja.wikipedia.org/wiki/IEEE_754) のはずなのでこれに基づいて変換処理を書けるでしょう。


CC BY-SA 4.0
2023-09-14T11:51:38.260
96217
2023-09-14T11:51:38.260
3364
96206
answer