アカウント名:
パスワード:
LIST10 SUM=020 FOR I=0 TO 10000-130 SUM=SUM+0.140 NEXT50 PRINT SUMRUN1000OK■
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
金の計算と帳票処理なら (スコア:0)
二進化十進 (スコア:1)
良いものは良い。
なんか文句がある人がいるんでしょうか。
Re: (スコア:0)
Re: (スコア:0)
Re: (スコア:2, すばらしい洞察)
Re: (スコア:0)
と不思議に思った数秒後に、
FP-1100のBASICは10進演算していたのを思い出した。(だから遅かったよNE!)
・・・懐かしい思い出をありがとう。
Re: (スコア:1)
Z-80にもDAA命令があるのでBCD演算の実装はまあ、浮動小数の実装と比べて、
そんなに極端な差は出ないと踏んだんでしょうけど、
MSXのユーザーの大半は使ってなかったと言う…。
あと懐かしいといえばNCB(Number Crunch BASIC)てのもありましたねー。
ナンバークランチングをBASICでやろうと言うのも凄い話なんですが(^^;
とにかくBCDを実装した言語はパソコンにも割とあったと言うお話です。
ちなみにIA-32のSIMD命令にもちゃんとBCD演算を考慮した命令(四則演算)は残ってますし、
IBMメインフレームじゃなくても、実装は十分出来ると思うんで
Re: (スコア:1)
IA32のSIMDにBCD命令って何かありましたっけ?
もちろん、整数演算でBCDを実現することは不可能ではないでしょうけど…
Re:二進化十進 (スコア:1)
FPUおよびCPU一般命令でBCDを扱う命令がありますの間違いです。
ちなみにSIMDでBCDは全く扱えないか、と言うと、工夫次第である程度はいけそうです。
整数で実現する方法はと言うと、BCDを実現するには
ハーフキャリー(ハーフボロー)を監視すればよいのですが、
SIMDだけでやるとアンパックして、更にビットをずらしてまたアンパック後に、
比較命令でマスク生成してマスクを4ビットずらして加算してパックして更にパック。…と、面倒くさいですね。
失礼しましたです。