**2024/11/30
= 簡易計算
XBC value1 [ operation value2 ] [op value3 [... op value10] ] [[/output-type] [R] [Vn[R]]
-value1/2: [type]digit 形式
type: z:10進数, x:16進数, o:8進数, t:hhmmss.xxx 形式の時間。
10進数は 19桁まで、また区切り文字 "," があってもよい。
無指定のとき、全て10進数なら10進数、全てが16進数なら
16進数、hh:mm:ss形式なら時間。
少数点以下は9桁まで、但しx と o では小数点以下の指定は
できない。
ダブルワードは16進数ワードを ".." で連結する。
例えば abcdef01..23456789。
Hex/Octal指定のときワード溢れは無視されるので 0x00..12345678*0x100
ダブルワードの結果が表示される
-value3..: !,<,>,&,|,^ 以外を最大10演算を連結することができる
演算子に優先順位はなく左から順に計算する
-operation: +,-,*,!,/,%, <,>,|,&,^
('!'は累乗、'<','>'はシフト、^は排他OR。)
シフト、ビット演算は時間には無効。
指定のないとき基数変換を行う。
時間とその他のタイプでは他方は秒数として計算する。
時間同士の乗除算は秒に変換して計算する。
ダブルワード計算は +,-,*,/,% のみサポート。
ワードオーバーフローは10進数演算はダブルワードに繰り上げ
16進、8進演算では無視される。
-output-type:結果の表示形式。
X:16進数、O:8進数、D:10進数、U:符号無し10進数、
Z:zzz,zz9 形式の10進数、UZ:zzz,zz9 形式の符号無し10進数
T:hh:mm:ss.xxx 形式の時間、
S:UCS-4 ユニコードとそのUCS-2 サロゲート表示との変換。
L:16進数ワード(1970年からの経過秒),又はダブルワード
(HOST-TOD:ダブルワードのビット51がマイクロ秒です)を
を時刻に変換。但しHOST-TODは2000年1月1日以前は
1900年1月1日からの経過秒に変換 。
指定のないとき入力のデータタイプにより決定する。
10進数は16進数で、8進数/16進数は10進数で、時間は秒換算の
10進数で表示する。
割り算のとき10進では結果の精度は1桁増やす、
x と o では余りを表示する。
-R:結果をコマンド入力行に表示する。
結果を利用した次の計算を行う時に使用する。
-Vn[R]:結果を小数点以下n桁とする。R:四捨五入
(例) XBC T010100 ; XBC xfe0100 ; XBC o177 ; XBC e8ff>3
XBC T012159.12+t005212.333 ; XBC xabcdef+1000
XBC 12345678..abcdef0/30a2 ; XBC 3acf19fe/l
xbc 1234.56*7.89 v2r ; xbc 123.45/6.789 vr
xbc 200/3.3*35 v2r ; xbc 1+2+3+4+5+6+7+8+9+10
xbc 1f468/s ==> x1f468/s:=d83ddc68
xbc d83ddc68 ==> xd83ddc68/s:=0001f468
(注) XBC は 単独の exe もパッケージングしています.