N88-BASICでn進数 (2回目)
2022/2/14(月) N88-BASICでn進数 (2回目) n進数を10進数に変換します n進数の数値をa≧0とします (負の数は-が付くだけなので 正の数のみ説明します) [a]をaの整数部分Fract(a)を小数部分とする aの整数部分をx 0 、小数部分をy 0 とし x = [a], y = Fract(a)と置く a 1 = 2桁目 a 0 = 1桁目(右から数えて) a -1 = 小数第1位目 の数値とすると 10進数bは b = Σ(a i n i ) (i=-?~?) となります 例 1101.1101(2)→(10) 整数部分は2の(桁数-1)乗倍 小数部分は2の-(小数の位)乗倍 nの乗数を1減らすと1/n倍になる 2の乗数を1減らすと1/2倍になる 2 2 = 4 2 1 = 2 2 0 = 1 2 -1 = 1/2 = 0.5 2 -2 = 1/4 = 0.25 1101.1101(2) = 1 ・ 2 3 + 1・ 2 2 + 0・ 2 1 + 1・ 2 0 + 1 ・ 2 -1 + 1・ 2 -2 + 0・ 2 -3 + 1・ 2 -4 = 1 ・8 + 1・4 + 0・2 + 1・1 + 1 ・ 0.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を読んで遊んで下さい