入力した2進数を10進数に変換する

説明

2進数を10進数に変換します。変換するには2のn乗を計算するpow()を使って1桁ごと加算していきます。ビットが1の場合のみ加算していけば2進数から10進数に変換できます。ここでは8ビット長の2進数を10進数に変換します。

Studioで試す

以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。

Studio で開く

プログラム

// 入力した2進数を10進数に変換する
cls
input n$
dec=0
for i=0 to 7
  b$=mid$(n$,i,1)
  if b$="1" then
    dec=dec+pow(2,7-i)
  end if
next
print dec

解説

2行目で画面を消去しています。

3行目でユーザーからの2進数文字列の入力を待ちます。文字列の長さ(ビットを示す文字列)は必ず8文字でなければなりません。8文字でない場合は正しい答えが得られません。

4行目は結果を入れる変数を用意します。最初の状態では0文字にしておきます。

5行目から10行目までが繰り返しになります。入力された文字列の長さに合わせて処理するためビット長を指定する必要はありません。

6行目で一番左の文字列(ビット)から1文字取り出します。

7行目で求めたビットが1かどうかを調べています。1の場合であれば8行目が実行されます。

8行目で2のn乗をpow()を使って求めます。

11行目で10進数に変換した結果を表示します。

なお、8ビットでなく16ビットで処理したい場合は5行目の7と8行目の7の数を15に変更してください。32ビットで処理する場合は31に変更してください。