2進モード

 投稿者:M.T  投稿日:2010年 9月21日(火)09時40分10秒
  十進BASICには2進モードというのがありますが、これはどのような使い道があるのでしょうか。  

Re: 2進モード

 投稿者:山中和義  投稿日:2010年 9月21日(火)12時57分47秒
  > No.1392[元記事へ]

M.Tさんへのお返事です。

> 十進BASICには2進モードというのがありますが、これはどのような使い道があるのでしょうか。


他の言語処理系(C/C++,Javaなど)と同様にFPU(浮動小数点演算ユニット)を使った
高速な(3倍程度速い)2進法による計算(古くは科学計算向け数値計算と言われた)が可能です。

ただ、10進モードの10進法(事務計算向け)とは精度の違いがあります。

サンプル 最後の2の判定で精度の差がはっきりします。
LET s=0
FOR i=1 TO 2 STEP 0.1
   LET s=s+i
NEXT i
PRINT s
END
 

Re: 2進モード

 投稿者:SECOND  投稿日:2010年 9月21日(火)20時17分16秒
  > No.1392[元記事へ]

M.Tさんへのお返事です。

!2進モードは、プロセッサー そのままの数値、
!2進数や16進数で、2のべき乗にシフトする際、不正なビットが出ません。
!画像処理のような連続シフトの場合、10進モードでは、ビットが化けます。

!10進モードは、10進数で、計算したい時に、誤差の少ない補正モードです。

OPTION ARITHMETIC NATIVE
PRINT BSTR$(BVAL("1234",16)*2^64,16),"←不正ビットなし"
CALL decimal_
END

EXTERNAL SUB decimal_
OPTION ARITHMETIC DECIMAL
PRINT BSTR$(BVAL("1234",16)*2^64,16),"←不正ビット有り"
END SUB
 

戻る