現在地と前後の項目 最大公約数,最小公倍数,ユークリッドの互除法/1次不定方程式の整数解/整数問題.センター(2015~)/ペル方程式/2進法,16進法,n進法⇔10進法/N進法/2進数の演算/N進数の演算/N進数の小数/連続整数の積/累乗剰余/平方剰余/入試問題(素数,剰余類1)/入試問題(素数,剰余類2)/フェルマー予想,オイラー予想/3n+1問題(コラッツ予想)/ ■10進法 小中学校以来使っている10進法は,右の例のように たとえば,a×102+b×10+cをabcと書くものです. (10進法で表された数を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+cをabc(2)と書くものです. (2進法で表された数を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)は省略できます. 578は578(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!(定義域にない値を代入した)というエラーコードが返されます. ■3進法 3進法は,右の例のように たとえば,a×32+b×3+cをabc(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 ■8進法 8進法は,右の例のように たとえば,a×82+b×8+cをabc(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!(定義域にない値を代入した)というエラーコードが返されます. ■16進法 16進法は,右の例のように たとえば,x×162+y×16+zをxyz(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 ■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進数の例】
5×102+6×10+7を567と書く 9×103+8×102+0×10+7を9807と書く 使える数字は,0,1,2,3,4,5,6,7,8,9の10種類
【2進数の例】
1×22+1×2+0を110(2)と書く 1×23+0×22+1×2+1を1011(2)と書く 使える数字は,0,1の2種類 1×23+0×22+1×2+1=8+0+2+1 →2
1×24+1×23+1×22+0×21+0=16+8+4+0+0=28 →3
【3進数の例】
2×32+1×3+0を210(3)と書く 1×33+2×32+1×3+0を1210(3)と書く 使える数字は,0,1,2の3種類 1×33+2×32+2×31+0=27+18+6+0=51 →2
【8進数の例】
7×82+6×8+5を765(8)と書く 1×83+0×82+6×8+7を1067(8)と書く 使える数字は,0,1,2,3,4,5,6,7の8種類 1×82+2×81+0=64+16+0=80 →3
【16進数の例】
7×162+A×16+Bを7AB(16)と書く E×163+9×162+C×16+5をE9C5(16)と書く 使える数字は,0,1,2,3,...,9,A,B,C,D,E,Fの16種類
※読者の質問として意外に多いのが F を16と思い込んでしまう場合です.16進数では最高で15を表す文字までしか使いません.Fは15に対応しています.
C×16+7=12×16+7=192+7=199 →3
F×16+F=15×16+15=240+15=255 →3
|
■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() という関数が利用できます.
【例】
|
○
![]() ![]()
≪10進数を2進数に直す方法≫
2で割った余りを上から下へ,右から左に書く. (下から上へ,左から右に書くと覚えてもよい) ○ 暗算でするには 23=1×24+0×23+1×22+1×2+1
のように書くと,=1×16+0×8+1×4+1×2+1
【例4】
(解答)10進数で書かれた数字11を2進数に直してください. 24=16, 23=8, 22=4, 21=2, 1を準備しておく
|
25=32, 24=16, 23=8, 22=4, 21=2, 1を準備しておく
![]() →4
|
25=32, 24=16, 23=8, 22=4, 21=2, 1を準備しておく
→3
|
34=81, 33=27, 32=9, 31=3, 1を準備しておく
![]() 順に3で割るときは,右図のようになります. →4
|
83=512, 82=64, 81=8, 1を準備しておく
→1
|
162=256, 161=16, 1を準備しておく
→4
|
162=256, 161=16, 1を準備しておく
→2
|
自由研究
以下のツールでは,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進法で表すと,%#とする約束です. |
■このサイト内のGoogle検索■ |