1. 負のk進法
2. 十進法から負のk進法への変換
3. 負の基数による整数
4. 負の基数による小数
二進法は 2 を基数とする記数法で,各々の位は 0,1 のいずれかになっている。 二進法では,各位の数に 2 のべきを掛けたものの合計の値を表す。 \[ 9_{10}=1001_2=1\times 2^3+0\times 2^2+0\times 2+1 \]
使用例:
|
|
|
負の二進法は −2 を基数とする記数法で,各々の位は 0,1 のいずれかになっている。 二進法では,各位の数に −2 のべきを掛けたものの合計の値を表す。 \[ -9_{10}=1011_{-2}=1\times (-2)^3+0\times (-2)^2+1\times (-2)+1 \]
使用例:
|
|
|
三進法は 3 を基数とする記数法で,各々の位は 0,1,2 のいずれかになっている。 三進法では,各位の数に 3 のべきを掛けたものの合計の値を表す。 \[ 15_{10}=120_3=1\times 3^2+2\times 3+0 \]
使用例:
|
|
|
負の三進法は −3 を基数とする記数法で,各々の位は 0,1,2 のいずれかになっている。 三進法では,各位の数に −3 のべきを掛けたものの合計の値を表す。 \[ 15_{10}=210_{-3}=2\times (-3)^2+1\times (-3)+0 \]
使用例:
|
|
|
次のページへ
1. 負のk進法
2. 十進法から負のk進法への変換
3. 負の基数による整数
4. 負の基数による小数
十進法で 114 と表される数を三進法に変換する。
除算 | 商 | 余 |
114 ÷ 3 | 38 | 0 |
---|---|---|
38 ÷ 3 | 12 | 2 |
12 ÷ 3 | 4 | 0 |
4 ÷ 3 | 1 | 1 |
1 ÷ 3 | 0 | 1 |
↑ |
求めた余りを逆順に並べると,十進法の 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) | −38 | 0 |
---|---|---|
−38 ÷ (−3) | 13 | 1 |
13 ÷ (−3) | −4 | 1 |
−4 ÷ (−3) | 2 | 2 |
2 ÷ (−3) | 0 | 2 |
↑ |
求めた余りを逆順に並べると,十進法の 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. 負のk進法
2. 十進法から負のk進法への変換
3. 負の基数による整数
4. 負の基数による小数
基数 −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. 負のk進法
2. 十進法から負のk進法への変換
3. 負の基数による整数
4. 負の基数による小数
負の十進法において小数部分の下限は 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 \]
最後のページです
2014.11.6 作成 / 2020.3.28 更新
Home › 負の基数を用いる記数法