!エピソード
!任意のN進数へ・・・同じです。
!入力レジスター:N進レジスター のように並べて !右方向にシフト(Nで割る)。
DIM hex(100) ! ←出力の最大桁
CALL place(100000,2) ! ← ( 入力のunsigned 数値,N進数) CALL place(100000,3) CALL place(100000,4) CALL place(100000,5) CALL place(100000,6) CALL place(100000,7) CALL place(100000,8) CALL place(100000,9) CALL place(100000,10) CALL place(100000,11) CALL place(100000,12) CALL place(100000,13) CALL place(100000,14) CALL place(100000,15) CALL place(100000,16)
SUB place( dec, N ) PRINT N;"進数: "; ! LET p=1 DO WHILE N <=dec LET hex(p)=MOD(dec,N) LET dec=INT(dec/N) LET p=p+1 LOOP LET hex(p)=dec ! ! hex(p) 〜 hex(1) ←出力の unsigned N進数 ! FOR i=p TO 1 STEP -1 LET y=hex(i) PRINT mid$( "0123456789ABCDEF", y+1 ,1 ); NEXT i PRINT END SUB
END
!N進レジスター:10進レジスター のように並べて !左方向にシフトする(10を乗ず)方法も、有ります。 !が、高級言語のBASICは、N進演算をしませんので、適しません。
|