Home標準記数法符号付き数の列正数の列負の基数

1. 負のk進法

1. 負のk進法
2. 十進法から負のk進法への変換
3. 負の基数による整数
4. 負の基数による小数

二進法(Binary)

二進法は 2 を基数とする記数法で,各々の位は 0,1 のいずれかになっている。 二進法では,各位の数に 2 のべきを掛けたものの合計の値を表す。 \[ 9_{10}=1001_2=1\times 2^3+0\times 2^2+0\times 2+1 \]

使用例:

十進法二進法
0  0
1  1
2 10
3 11
4100
5101
6110
7111
十進法二進法
 81000
 91001
101010
111011
121100
131101
141110
151111
十進法二進法
1610000
1710001
1810010
1910011
2010100
2110101
2210110
2310111

負の二進法(Negabinary)

負の二進法は −2 を基数とする記数法で,各々の位は 0,1 のいずれかになっている。 二進法では,各位の数に −2 のべきを掛けたものの合計の値を表す。 \[ -9_{10}=1011_{-2}=1\times (-2)^3+0\times (-2)^2+1\times (-2)+1 \]

使用例:

十進法負の二進法
−101010
 −91011
 −81000
 −71001
 −61110
 −51111
 −41100
 −31101
十進法負の二進法
−2 10
−1 11
 0  0
 1  1
 2110
 3111
 4100
 5101
十進法負の二進法
 611010
 711011
 811000
 911001
1011110
1111111
1211100
1311101

三進法(Ternary)

三進法は 3 を基数とする記数法で,各々の位は 0,1,2 のいずれかになっている。 三進法では,各位の数に 3 のべきを掛けたものの合計の値を表す。 \[ 15_{10}=120_3=1\times 3^2+2\times 3+0 \]

使用例:

十進法三進法
0 0
1 1
2 2
310
411
512
620
721
822
十進法三進法
 9100
10101
11102
12110
13111
14112
15120
16121
17122
十進法三進法
18200
19201
20202
21210
22211
23212
24220
25221
26222

負の三進法(Negaternary)

負の三進法は −3 を基数とする記数法で,各々の位は 0,1,2 のいずれかになっている。 三進法では,各位の数に −3 のべきを掛けたものの合計の値を表す。 \[ 15_{10}=210_{-3}=2\times (-3)^2+1\times (-3)+0 \]

使用例:

十進法負の三進法
−620
−521
−422
−310
−211
−112
 0 0
 1 1
 2 2
十進法負の三進法
 3120
 4121
 5122
 6110
 7111
 8112
 9100
10101
11102
十進法負の三進法
12220
13221
14222
15210
16211
17212
18200
19201
20202

次のページへ

1 2 3 4 Next

2. 十進法から負のk進法への変換

1. 負のk進法
2. 十進法から負のk進法への変換
3. 負の基数による整数
4. 負の基数による小数

十進法から三進法へ

十進法で 114 と表される数を三進法に変換する。

除算
114 ÷ 3380
38 ÷ 3122
12 ÷ 340
4 ÷ 311
1 ÷ 301

求めた余りを逆順に並べると,十進法の 114 は三進法で 11020 になる。 この結果が正しいことを確かめるために,最後の行から順に展開していく(最後の行は省く)。 \begin{align*} 4 &=1\times 3+1\\ 12 &=4\times 3+0\\ &=(1\times 3+1)\times 3+0\\ &=1\times 3^2+1\times 3+0\\ 38 &=12\times 3+2\\ &=(1\times 3^2+1\times 3+0)\times 3+2\\ &=1\times 3^3+1\times 3^2+0\times 3+2\\ 114 &=38\times 3+0\\ &=(1\times 3^3+1\times 3^2+0\times 3+2)\times 3+0\\ &=1\times 3^4+1\times 3^3+0\times 3^2+2\times 3+0 \end{align*} したがって,十進法の 114 を三進法で表すと 11020 になる。

十進法から負の三進法へ

十進法で 114 と表される数を負の三進法に変換する。 100÷3 の商は ⌈100÷(−3)⌉ によって求める。

除算
114 ÷ (−3)−380
−38 ÷ (−3)131
13 ÷ (−3)−41
−4 ÷ (−3)22
2 ÷ (−3)02

求めた余りを逆順に並べると,十進法の 114 は負の三進法で 22110 になる。 この結果が正しいことを確かめるために,最後の行から順に展開していく(最後の行は省く)。 \begin{align*} -4 &=2\times (-3)+2\\ 13 &=(-4)\times (-3)+1\\ &=(2\times (-3)+2)\times (-3)+1\\ &=2\times (-3)^2+2\times (-3)+1\\ -38 &=13\times (-3)+1\\ &=(2\times (-3)^2+2\times (-3)+1)\times (-3)+1\\ &=2\times (-3)^3+2\times (-3)^2+1\times (-3)+1\\ 114 &=-38\times (-3)+0\\ &=(2\times (-3)^3+2\times (-3)^2+1\times (-3)+1)\times (-3)+0\\ &=2\times (-3)^4+2\times (-3)^3+1\times (-3)^2+1\times (-3)+0 \end{align*} したがって,十進法の 114 を負の三進法で表すと 22110 になる。

次のページへ

1 2 3 4 Next

3. 負の基数による整数

1. 負のk進法
2. 十進法から負のk進法への変換
3. 負の基数による整数
4. 負の基数による小数

負のk進法

基数 −k が −2 以下の整数のとき,任意の数を非負数 0,1,…,k−1 の列で表す記数法のことを 負の k 進法 という。 実数 x を負の k 進法で表した文字列を anan−1…a0.a−1a−2… とする。 \[ x=a_n a_{n-1}\cdots a_0 .a_{-1}a_{-2}\cdots \] x が整数の場合は,小数部分(小数点より右側の部分)が0になる。 \[ x=a_n a_{n-1}\cdots a_0 \]

天井関数の商と常に非負の剰余

実数を整数に丸める関数を F(x) とする。ここでは天井関数(正の場合は切り上げ)を用いる。 \[ F(x)=\lceil x\rceil \] x は任意の実数,−k は負の実数とする。 被除数 x を除数 k で割ったときの整数商 q を F(x/(−k))=⌈x/(−k)⌉ によって定めると,剰余 r は非負の実数(0≤r<k)になる。 \[ q=F\left(\frac{x}{-k}\right),\;x=qk+r\implies 0\le r\lt k \] 特に,x が整数で k が −2 以下の整数の場合は,r は 0≤r≤k−1 の範囲の整数になる。 \[ x,k\in \mathbb{Z},\;q=F\left(\frac{x}{-k}\right),\;x=qk+r\implies 0\le r\le k-1 \]

整数部分の決定

x は整数,k は −2 以下の整数とする。 x=0 でないとき,x を −k で割った商を q0,剰余を a0 とする。ただし除法は上に定めたものとする。 a0 は 0≤a0≤k−1 の範囲の整数になる。 \[ q_0=F\left(\frac{x}{-k}\right)\quad (|q_0|\le |x|),\qquad x=q_0(-k)+a_0\quad (0\le a_0\le k-1) \] q0=0 でないとき,q0 を −k で割った商を q1,剰余を a1 とする。 \[ q_1=F\left(\frac{q_0}{-k}\right)\quad (|q_1|\le |q_0|),\qquad q_0=q_1(-k)+a_1\quad (0\le a_1\le k-1) \] 同様にして除算を繰り返す。qi−1=0 でないとき,qi−1 を −k で割った商を qi,剰余を ai とする。 \[ q_i=F\left(\frac{q_{i-1}}{-k}\right)\quad (|q_i|\le |q_{i-1}|),\qquad q_{i-1}=q_i(-k)+a_i\quad (0\le a_i\le k-1) \] |x|>|q0|>|q1|>… より,ある番号 n で qn=0 になるから,その時点でとりやめる。 (正確にいうと,qi−1=−1 でない場合は |qi−1|>|qi| となり,qi−1=−1 の場合は2回の除算の後に0になることから,ある番号 n で qn=0 になる。) \[ q_n=F\left(\frac{q_{n-1}}{-k}\right)=0,\qquad q_{n-1}=q_n(-k)+a_n\quad (0\le a_n\le k-1) \] 除算の結果を次々に置き換えると,x を −k のべきを使って表すことができる。 \begin{align*} x &=q_0(-k)+a_0\\ &=q_1(-k)^2+a_1(-k)+a_0\\ &\qquad \qquad \cdots \\ &=q_{i-1}(-k)^i+a_{i-1}(-k)^{i-1}+\cdots +a_2(-k)^2+a_1(-k)+a_0\\ &\qquad \qquad \cdots \\ &=q_{n-1}(-k)^n+a_{n-1}(-k)^{n-1}+\cdots +a_2(-k)^2+a_1(-k)+a_0\\ &=a_n(-k)^n+a_{n-1}(-k)^{n-1}+\cdots +a_2(-k)^2+a_1(-k)+a_0 \end{align*} したがって,整数 x を負の k 進法で表したときの各位は ai になる。 \[ x=a_n a_{n-1}\cdots a_2 a_1 a_0 \]

除法の許容範囲

丸め関数 F(x) は,⌊X+(k−1)/k⌋ から ⌈X⌉ までの範囲内のものに置き換えてもかまわない。 \[ \left \lfloor x+\frac{k-1}{k}\right \rfloor \le F(x)\le \left \lceil x\right \rceil \] なぜなら,x が整数ならば,上の範囲内の F(x) によって同一の結果が得られるからである。 \[ x\in \mathbb{Z}\implies q_0=\left \lfloor \frac{x}{-k}+\frac{k-1}{k}\right \rfloor =\left \lceil \frac{x}{-k}\right \rceil \]

次のページへ

1 2 3 4 Next

4. 負の基数による小数

1. 負のk進法
2. 十進法から負のk進法への変換
3. 負の基数による整数
4. 負の基数による小数

負のk進法の小数部分

負の十進法において小数部分の下限は 0.9090…=−10/11,上限は 0.0909…=1/11 である。 一般に,負の k 進法において実数 x の整数部分を Q,小数部分を R とすると,小数部分 R は次の式の範囲内にある。 \[ -\frac{k}{k+1}\le R\le \frac{1}{k+1} \] そこで,実数を整数に丸める関数を f(x),g(x) とする。 \[ g(x)=\left \lceil x-\frac{1}{k+1}\right \rceil,\qquad f(x)=\left \lfloor x+\frac{k}{k+1}\right \rfloor,\qquad g(x)\le f(x) \] 実数 x の整数部分 Q を f(x) によって定めれば,小数部分 R は \[ Q=f(x)\implies -\frac{k}{k+1}\le R<\frac{1}{k+1} \] 実数 x の整数部分 Q を g(x) によって定めれば,小数部分 R は \[ Q=g(x)\implies -\frac{k}{k+1}<R\le \frac{1}{k+1} \] となる。

小数部分の決定

実数 x の整数部分 Q と小数部分 R を丸め関数 f(x) によって定めると,小数部分 R は −k/(k+1)≤R<1/(k+1) の範囲の実数になる。 R=0 でないとき,R に −k を掛けた値の整数部分 a−1 と小数部分 r−1 を丸め関数 g(x) によって定めると, a−1 は 0≤a−1≤k−1 の範囲の整数,r−1 は −k/(k+1)<r−1≤1/(k+1) の範囲の実数になる。 \[ a_{-1}=g(R\cdot (-k)),\qquad R\cdot (-k)=a_{-1}+r_{-1}\quad \left(-\frac{k}{k+1}\lt r_{-1}\le \frac{1}{k+1}\right) \] r−1=0 でないとき,r−1 に −k を掛けた値の整数部分 a−2 と小数部分 r−2 を丸め関数 f(x) によって定めると, a−2 は 0≤a−2≤k−1 の範囲の整数,r−2 は −k/(k+1)≤r−2<1/(k+1) の範囲の実数になる。 \[ a_{-2}=f(r_{-1}\cdot (-k)),\qquad r_{-1}\cdot (-k)=a_{-2}+r_{-2}\quad \left(-\frac{k}{k+1}\le r_{-2}\lt \frac{1}{k+1}\right) \] 同様にして乗算を繰り返す。 r−i+1=0 でないとき,i が奇数ならば r−i+1 に −k を掛けた値の整数部分 a−i と小数部分 r−i を丸め関数 g(x) によって定めると, r−i は −k/(k+1)<r−i≤1/(k+1) の範囲の実数になる。 r−j+1=0 でないとき,j が偶数ならば r−j+1 に −k を掛けた値の整数部分 a−j と小数部分 r−j を丸め関数 f(x) によって定めると, r−j は −k/(k+1)≤r−j<1/(k+1) の範囲の実数になる。 ある番号 −m で r−m=0 になれば,その時点でとりやめる。 r−i=0 にならなければ無限小数になる。 \begin{align*} a_{-i}=g(r_{-i+1}(-k)),\quad r_{-i+1}(-k)=a_{-i}+r_{-i}\quad \left(-\frac{k}{k+1}\lt r_{-i}\le \frac{1}{k+1}\right)\\ a_{-j}=f(r_{-j+1}(-k)),\quad r_{-j+1}(-k)=a_{-j}+r_{-j}\quad \left(-\frac{k}{k+1}\le r_{-j}\lt \frac{1}{k+1}\right) \end{align*} 乗算の結果を次々に置き換えると,R を −k のべきを使って表すことができる。 \begin{align*} R &=a_{-1}(-k)^{-1}+r_{-1}(-k)^{-1}\\ &=a_{-1}(-k)^{-1}+a_{-2}(-k)^{-2}+r_{-2}(-k)^{-2}\\ &\qquad \qquad \cdots \\ &=a_{-1}(-k)^{-1}+a_{-2}(-k)^{-2}+\cdots +a_{-i}(-k)^{-i}+r_{-i}(-k)^{-i} \end{align*} ある番号 −m で r−m=0 になる場合は, \[ R=a_{-1}(-k)^{-1}+a_{-2}(-k)^{-2}+\cdots +a_{-m}(-k)^{-m} \] r−i=0 にならない場合は無限小数で, \[ R=a_{-1}(-k)^{-1}+a_{-2}(-k)^{-2}+\cdots +a_{-i}(-k)^{-i}+\cdots \] となる。 したがって,x の小数部分 R を k 進法で表したときの各位は a−i になる。 \[ R=0.a_{-1} a_{-2}\cdots a_{-i}\cdots \]

最後のページです

1 2 3 4 Home

負の基数を用いる記数法

Home標準記数法符号付き数の列正数の列負の基数

2014.11.6 作成 / 2020.3.28 更新

Home › 負の基数を用いる記数法