N88-BASICでn進数 (2回目)

2022/2/14(月)
N88-BASICでn進数 (2回目)
 
n進数を10進数に変換します
 
n進数の数値をa≧0とします
(負の数は-が付くだけなので
正の数のみ説明します)
 
[a]をaの整数部分Fract(a)を小数部分とする
aの整数部分をx0、小数部分をy0とし
 
x = [a], y = Fract(a)と置く
 
a1 = 2桁目
a0 = 1桁目(右から数えて)
a-1 = 小数第1位目
の数値とすると
 
10進数bは
b = Σ(aini) (i=-?~?)
となります
 

1101.1101(2)→(10)
整数部分は2の(桁数-1)乗倍
小数部分は2の-(小数の位)乗倍
nの乗数を1減らすと1/n倍になる
2の乗数を1減らすと1/2倍になる
22 = 4
21 = 2
20 = 1
2-1 = 1/2 = 0.5
2-2 = 1/4 = 0.25
 
1101.1101(2)
= 123 + 1・22 + 0・21 + 1・20 +
 12-1+ 1・2-2+ 0・2-3+ 1・2-4 
= 1・8 + 1・4 + 0・2 + 1・1 +
 10.5 + 1・0.25 + 0・125 + 1・0.0625
= 8 + 4 + 1 + 0,5 + 0.25 + 0.0625
= 13.8125
 
1101.1101(2)→13.8125(10)
 
1桁を1文字で表すため11進数以上では
10~35をA~Z(26文字)に置換えて入力して下さい
よって2≦n≦36となりますが
エラーチェックは行っていません
 
また、小数の精度は倍精度実数型に依存
します(10進数で16桁程です)
 
NL-BASICとblg~.zip(nary002.bas)は
このブログ(以下のリンク)からダウンロードできます

https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい













このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)