PC用は別頁

10進法
 小中学校以来使っている10進法は,次の例のように
たとえば,a×102+b×10+cabcと書くものです.
 (10進法で表された数を10進数といいます.)
【10進数の例】
5×102+6×10+7567と書く
9×103+8×102+0×10+79807と書く

 使える数字は,0,1,2,3,4,5,6,7,8,9の10種類
 10進法では,0,1,2,3,4,5,6,7,8,9の順に大きい数字を使い,9の次は新しい数字は使わずに1つ上の桁に1を書いて10とします.
2進法
 コンピュータの内部で使われる2進法(on=1, off=0の区別しかないので,2種類の数字だけで表す)は,次の例のように
たとえば,a×22+b×2+cabc(2)と書くものです.
 (2進法で表された数を2進数といいます.)
【2進数の例】
1×22+1×2+0110(2)と書く
1×23+0×22+1×2+11011(2)と書く

 使える数字は,0,1の2種類
 2進法では,0,1の順に数字を使い,1の次は新しい数字は使わずに1つ上の桁に1を書いて10(2)とします.
 何進法で書かれているかを表すために末尾に小さくかっこうを付けて書きます.
101(2) → 2進法で書かれている数(2進数)
1201(3) → 3進法で書かれている数(3進数)
6107(8) → 8進法で書かれている数(8進数)
A1B3(16) → 16進法で書かれている数(16進数)

※ 10進法で書かれているときだけは,末尾の(10)は省略できます.
578578(10)のこと. → 10進法で書かれている数(10進数)

【例1】
 2進数で書かれた数字101(2)を10進数に直してください.
101(2)を10進数に直すには,1×22+0×2+1の計算を(普通に)10進法でやればよい.
(解答)
1×22+0×2+1=4+0+1=5
※ Excelではよく使われるn進数相互の間に変換関数が準備されています.[この頁の問題の検算に使えます]
 2進数(***)を10進数に直す関数は =BIN2DEC(***) です.(コンピュータ関連では,Exe to Binのtoを2で短縮してかつ空白文字を詰めるEXE2BINという面白い書き方があります.BIN2DEC は Binary to Decimal(2進数から10進数)の略でしょう.
【例】 BIN2DEC(11)=3, BIN2DEC(1010)=10
※ BIN2DEC(1203) のように2進数としては使用できない文字 2,3などを引数にすると #NUM!(定義域にない値を代入した)というエラーコードが返されます.
【問題1】
 2進数で書かれた数字1011(2)を10進数に直してください.  

19 211 319 421 529




【問題2】
 2進数で書かれた数字11100(2)を10進数に直してください.  

17 214 328 435 542




3進法
 3進法は,次の例のように
たとえば,a×32+b×3+cabc(3)と書くものです.
 (3進法で表された数を3進数といいます.)

 3進法では,0,1,2の順に数字を使い,2の次は新しい数字は使わずに1つ上の桁に1を書いて10(3)とします.

【例2】
 3進数で書かれた数字2102(3)を10進数に直してください.
2102(3)を10進数に直すには,2×33+1×32+0×;3+2の計算を(普通に)10進法でやればよい.
(解答)
2×33+1×32+0×3+2=54+9+0+2=65
【3進数の例】
2×32+1×3+0210(3)と書く
1×33+2×32+1×3+01210(3)と書く

 使える数字は,0,1,2の3種類

【問題3】
 3進数で書かれた数字1220(3)を10進数に直してください.  

117 251 373 491 5153




8進法
 8進法は,次の例のように
たとえば,a×82+b×8+cabc(8)と書くものです.
 (8進法で表された数を8進数といいます.)

 8進法では,0,1,2,3,4,5,6,7の順に数字を使い,7の次は新しい数字は使わずに1つ上の桁に1を書いて10(8)とします.
※ Excelには8進数を10進数に変換する関数が準備されています.[この頁の問題の検算に使えます]
 8進数(***)を10進数に直す関数は =OCT2DEC(***) です.(Octal to Decimal)
【例】 OCT2DEC(7651)=4009
※ OCT2DEC(89) のように8進数としては使用できない文字 8,9などを引数にすると #NUM!(定義域にない値を代入した)というエラーコードが返されます.
【8進数の例】
7×82+6×8+5765(8)と書く
1×83+0×82+6×8+71067(8)と書く

 使える数字は,0,1,2,3,4,5,6,7の8種類

【問題4】
 8進数で書かれた数字120(8)を10進数に直してください.  

110 266 380 4129 5640




16進法
 16進法は,次の例のように
たとえば,x×162+y×16+zxyz(16)と書くものです.
 (16進法で表された数を16進数といいます.)

 16進数を表すためには,「1文字で10,11,12,13,14,15を表す」必要があり,このためにA,B,C,D,E,Fを使います.(Aは10進数の10,Bは10進数の11,...,Fは10進数の15に対応しています.)  16進法では,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fの順に数字を使い,Fの次は新しい数字は使わずに1つ上の桁に1を書いて10(16)とします.
※ Excelには16進数を10進数に変換する関数が準備されています.[この頁の問題の検算に使えます]
 16進数(***)を10進数に直す関数は =HEX2DEC(***) です.(Hexadecimal to Decimal)
【例】 HEX2DEC("AB0E")=43790 ←単にAB0Eと書くと変数やセル番地と解釈されるので,HEX2DEC()に渡す引数には「16進数を表す文字列」であることを示すためにダブルクォートで囲んで代入します.もしくは,他のセルに書かれた文字を参照します.

【例3】
 16進数で書かれた数字5A8C(16)を10進数に直してください.
5A8C(16)を10進数に直すには,5×163+A×162+8×16+Cの計算を(普通に)10進法でやればよい.ただし,Aは10進数の10,Bは10進数の11,...,Fは10進数の15を表すものとする.)
(解答)
5×163+10×162+8×16+12
=20480+2560+128+12=23180

【16進数の例】
7×162+A×16+B7AB(16)と書く
E×163+9×162+C×16+5E9C5(16)と書く

 使える数字は,0,1,2,3,...,9,A,B,C,D,E,Fの16種類

※読者の質問として意外に多いのが F を16と思い込んでしまう場合です.16進数では最高で15を表す文字までしか使いません.Fは15に対応しています.


【問題5】
 16進数で書かれた数字C7(16)を10進数に直してください.  

1167 2183 3199 4215





【問題6】
 16進数で書かれた数字FF(16)を10進数に直してください.  

1238 2244 3255 4272




n進法
 n進数を表すためには,「n種類の文字」が必要です.
 数学としてもコンピュータ処理としても256進数,...,32768進法などでも可能ですが,コンピュータの画面上に表示するには”コンピュータの1バイトで何種類の文字が表せるか”という別の都合を考えなければなりません.また,+-*/().など演算に使われる文字は紛らわしいので避ける必要があります.このような訳で,コンピュータの画面上に簡単に表現できるのは,0,1,2,...,9までの10種類の文字,これに英大文字A,B,...Zの26文字,英小文字a,b,..,zの26文字を追加して62進数まででしょう.(大文字⇔小文字の区別がなければ36進数まで)
※コンピュータは内部的には2進数で処理されていますが,2進数を束にして扱うことにより,8進数,16進数,32進数,64進数などがよく使われます.今はコンピュータの時代なので,16進数,32進数,64進数などに出合う機会が多くなりました.

■10進数をn進数に直すには

○ 10進法で表された数を2進法で表すには,次の関係を用いると便利です.
 まず
 10111(2)=1×24+0×23+1×22+1×2+1=16+4+2+1=23
 を例にとって考えます.
23=1×24+0×23+1×22+1×2+1
=2(1×23+0×22+1×21+1)+1
=2(2(1×22+0×21+1)+1)+1
=2(2(2(1×21+0)+1)+1)+1
=2(2(2(2(1)+0)+1)+1)+1
のように変形すると,
 1.右端の位の数は23を2で割ったときの余りです
  2(2(2(2(1)+0)+1)+1)+1   ・・・・・→ 1
 2.このときの商 2(2(2(1)+0)+1)+1 ・・・→ 1
  をさらに2で割った余りは右から2つ目の位の数です.
 3.このときの商 2(2(1)+0)+1 ・・・・・・→ 1
  をさらに2で割った余りは右から3つ目の位の数です.
 4.このときの商 2(1)+0 ・・・・・・・・・→ 0
  をさらに2で割った余りは右から4つ目の位の数です.
 5.このときの商 1    ・・・・・・・・・→ 1
  をさらに2で割った余りは右から5つ目の位の数です.
○ 10進法で表された数を3進法,4進法,...など一般にn進法に直すには,ここの解説の2に変えて3,4,...,nを使うとよい.

Excelで10進数を2進数,8進数,16進数に直すには,各々 =DEC2BIN(), =DEC2OCT(), =DEC2HEX() という関数が利用できます.
【例】
  • DEC2BIN(51)=110011
  • DEC2OCT(98)=142
  • DEC2HEX(123)=7B
[小さな添え字は付いていません]
≪10進数を2進数に直す方法≫
 2で割った余りを上から下へ,右から左に書く.
(下から上へ,左から右に書くと覚えてもよい)


○ 暗算でするには
23=1×24+0×23+1×22+1×2+1
=1×16+0×8+1×4+1×2+1
のように書くと,
  • 16で取れるだけ取ってその係数にする(1
  • 残りの7から8で取れるだけ取ってその係数にする(取れないので0
  • 残りの7から4で取れるだけ取ってその係数にする(1
  • 残りの3から2で取れるだけ取ってその係数にする(1
  • 残りは1
※この「計算は必ず左から行う」

【例4】
 10進数で書かれた数字11を2進数に直してください.
(解答)
24=16, 23=8, 22=4, 21=2, 1を準備しておく
  • 16は入らないので8から始める
  • 8で取れるだけ取ってその係数にする(1
  • 残りの3から4で取れるだけ取ってその係数にする(取れないので0
  • 残りの3から2で取れるだけ取ってその係数にする(1
  • 残りは1
したがって,1011(2)
【問題7】
 10進数で書かれた数字36を2進数に直してください.  

11010(2) 21100(2) 311100(2) 4100100(2)



【問題8】
 10進数で書かれた数字27を2進数に直してください.  

110011(2) 210101(2) 311011(2) 411100(2)



【問題9】
 10進数で書かれた数字70を3進数に直してください.  

11122(3) 21222(3) 32112(3) 42121(3)



【問題10】
 10進数で書かれた数字135を8進数に直してください.  

1207(8) 2217(8) 3307(8) 4317(8)



【問題11】
 10進数で書かれた数字188を16進数に直してください.  

1AB(16) 2AC(16) 3BA(16) 4BC(16)



【問題12】
 10進数で書かれた数字755を16進数に直してください.  

12E5(16) 22F3(16) 35E2(16) 45E3(16)




自由研究
 以下のツールでは,2進数から64進数までの数を相互に変換します.赤枠には2から64までの数字を書き込んでください.(例えば16進数は16進数と書き,G進数とは書きません.)
 各位の数は,
0123456789 ← 10文字
ABCDEFGHIJKLMNOPQRSTUVWXYZ ← 26文字
abcdefghijklmnopqrstuvwxyz ← 26文字
#% ← 2文字
の合計64文字までとし,英字の大文字と小文字を区別し,例えばAは1文字で10を表し,aは1文字で36を表すものとします.これで62文字まで表せますが,残り2文字をここでは#%とし,例えば,63を1つの文字で表すと%,62を1つ文字で表すと#とするので,4094=64×63+62を64進法で表すと,%#とする約束です.
進数の正の整数
進数に 変換するやり直す

...(携帯版)メニューに戻る

...(PC版)メニューに戻る