0
高校数学解説
文献あり

補数についての覚書

236
0

正整数のq進表現とqn桁の補数

正整数のq進表現

正整数qZ2を固定する.

任意の正整数NZ1に対して,非負整数nZ0a0,,an{0,,q1}であって
N=anqn+an1qn1++a1q+a0, an0
が成り立つものがただ1組存在する.

( [E. Landau, Differential and Integral Calculus] )

存在

qN>qN1=(q1)(qN1++1)>0N11=N
より{mZ1N<qm}であるから,
n:=min{mZ1N<qm}1Z0
が定まる.定義より
qnN<qn+1
が成り立つ.

i{0,,n}に対して
ai=NqiNqi+1qZ
とおく.床函数について
xR, x1<xx
が成り立つことに注意すると,
1=(Nqi1)Nqi+1q<ai<Nqi(Nqi+11)q=q
すなわち0aiq1が成り立つことがわかる.また,
an=NqnNqn+1q=Nqn1
が成り立つ.

さらに,
anqn++a0=0naiqi=0nNqiqiNqi+1qi+1=Nq0q0Nqn+1qn+1=N
が成り立つ.

一意性

N=0naiqi=0mbjqjと2通りに表わせたとする.もし
[n=m][i, ai=bi]
が成り立たないとすると,
0=aiqibjqj=:0dkqk, d0, |dk|q1
と書ける.ところがこのとき
q|dq|=|01dkqk|01(q1)qk=q1<q
となり不合理である.

aiの定義より次が成り立つ:
N=Nqq+a0, 0a0<qNq=Nq2q+a1, 0a1<qNqi=Nqi+1q+ai, 0ai<qNqn1=Nqnq+an1, 0an1<qNqn=0q+an, 0<an<q
すなわち,a0,,anは,Nqで割り,その商をqで割り,その商をqで割り,と商が0になるまで繰り返したときの各段階の余りである.

正整数NZ1に対して,定理1により定まる非負整数を用いて
N=anan1a1a0(q)
と書き表わしたとき,これをN絶対q進表現といい,n+1をその絶対桁数という(ことにする).

q=2, N=19

19=92+19=42+14=22+02=12+01=02+1
より19の絶対2進表現は19=10011(2)となる.

N=ana0(q)を正整数Nの絶対q進表現とする.このとき,任意のmnに対して
N=0qm++0qn+1+anqn++a0
が成り立つので,
N=00mnana0(q)
と書いて,これをN相対q進表現といい,m+1をその相対桁数という(ことにする).また,00=00m+1(q)と表わす.

qn桁の補数

相対桁数がnの正整数N=an1a0(q),0aiq1,に対して,
ai=(q1)ai, n1i0
とおくと,0aiq1であるから
N:=an1qn1++a0=an1a0(q)
により相対桁数がnの非負整数Nが定まる.このとき,
N+N=(an1+an1)qn1++(a0+a0)=(q1)qn1++(q1)=qn1
が成り立つ.

相対桁数がnの正整数Nに対して
c(N):=N+1=qnN
qn桁のNの補数という(ことにする).

N+c(N)=qnより
Nc(N)modqn
が成り立つ.したがってc(N)Z/qnZにおけるNの反対元を与えている.

以下,相対桁数がnの正整数のことを単に“n桁の正整数”という.

n桁の正整数の補数はまたn桁の正整数である.

Nn桁の正整数とする.このとき
N+c(N)=qn, 1N<qn
より
0<c(N)=qnNqn1
が成り立つ.

正整数nに対して
N(q)n={NZ1Nqn1}={n桁の正整数}
とおくと,補題2より写像
c=c(q)n:N(q)nN(q)n; NqnN
が定まる.

補数を取る写像c:N(q)nN(q)nについて,cc=idが成り立つ.

任意のNN(q)nに対して
c(c(N))=qnc(N)=N
が成り立つ.

計算の工夫

引き算

MNn桁の正整数とする.このとき
MN=(M+c(q)n(N))qn
が成り立つ.
qn=1qn+0qn1++0q+0qn+(MN)=M+c(q)n(N)(qn1)+(qn1)=1qn+(q1)qn1++(q1)q+(q2)
であるから,上の等式は「n桁の正整数同士の差MNは,減数の補数を足してから(+c(q)n(N))繰り上がりを無視すれば(qn)求められる」ことを意味する.

掛け算

M,NZ2n桁の正整数とする.それぞれの補数について,1{c(M),c(N)}のときはc(M)c(N)<qnおよび
c(M)+c(N)<1+(qn1)=qn
が,c(M),c(N)>1のときは
c(M)c(N)(c(M)+c(N))=(c(M)1)(c(N)1)10
より
c(M)+c(N)c(M)c(N)
が成り立つ.また,
M+c(M)=qn=N+c(N)
より,整数
L:=Mc(N)=Nc(M)=qn(c(M)+c(N))=(M+N)qnZ
が定まる.したがって
MN=(qnc(M))(qnc(N))=(qnc(M)c(N))qn+c(M)c(N)=Lqn+c(M)c(N)
と書ける.

以下,c(M)c(N)<qnが成り立つ,すなわちc(M)c(N)の桁が増えないと仮定する.このときL>0であり,正整数L,c(M)c(N)n桁の相対q進表現をそれぞれ

  • L=an1a0(q)
  • c(M)c(N)=bn1b0(q)

とすると,
MN=(an1qn1++a0)qn+(bn1qn1++b0)=an1q2n1++a0qn+bn1qn1++b0
が成り立つ.すなわち,正整数MN2n桁の相対q進表現は
MN=an1a0bn1b0(q)
で与えられる.

q=10,n=3,M=983,N=977

c(M)=17,c(N)=23であるから,

  • L=98323=97717=960>0
  • c(M)c(N)=17×23=(203)(20+3)=4009=391<103

より
983×977=960391
と簡単に(暗算で?)計算できる.

整数の2進表現

以下,q=2とする.また,整数z,wZに対して
[z,w]={xZzxw}
とおく.

正整数の相対2進表現を用いて整数を表わすことを考える.

2n桁の補数

正整数N[1,2n1]の相対2進表現が
N=an1ank100nk(2), 1k<n
ならば,その補数c(2)n(N)[1,2n1]の相対2進表現は
c(2)n(N)=2n(an12n1++ank2nk+2nk1)=(2n2nk1)(an12n1++ank2nk)=(2n1++2nk1)(an12n1++ank2nk)=(1an1)2n1++(1ank)2nk+2nk1=an12n1++ank2nk+2nk1
より
c(2)n(N)=an1ank100nk(2)
で与えられる.

  • 5=101(2)=0101(2)
  • c(2)3(5)=235=3=011(2)
  • c(2)4(5)=245=11=1011(2)
  • 14=1110(2)=01110(2)
  • c(2)4(14)=2414=2=0010(2)
  • c(2)5(14)=2514=18=10010(2)

整数の2進表現

nZ2とする.写像
δ=δ(2)n:{0}N(2)n=[0,2n1][2n1,2n11]

δ(an12n1+an22n2++a0)=an12n1+an22n2++a0
で定める.
δ(02n1+an22n2++a0)=an22n2++a0[0,2n11]
および
δ(12n1+an22n2++a0)=2n1+an22n2++a0[2n1,1]=(2n1+an22n2++a0)2n=c(2)n(12n1+an22n2++a0)
より,δは(well-defined かつ)全単射である.したがって[2n1,2n11]に属する整数はβ(2)n:=(δ(2)n)1によりn桁の相対2進表現を持つ.
δ(2)n[0,2n11]id{2n1}[2n1+1,2n1]c(2)n[0,2n11]{2n1}[2n1+1,1]β(2)n
とくに,図式
[1,2n11]c(2)n(1)[2n1+1,2n1][2n1+1,1]β(2)n
の可換性より次がわかる:n1桁の正整数N=bn2b0(2)[1,2n11]に対して,負整数N[2n1+1,1]2進表現は
c(2)n(0bn2b0(2))
で与えられる.

  • β(2)2(1)=c(2)2(01(2))=11(2)
  • β(2)3(1)=c(2)3(001(2))=111(2)
  • β(2)3(3)=011(2)
  • β(2)4(3)=0011(2)
  • β(2)4(5)=c(2)4(0101(2))=1011(2)
  • β(2)6(5)=c(2)6(000101(2))=111011(2)

2進表現の延長と制限

m,nZ2, m>n,とする.

2進表現の延長

整数z[2n1,2n11]n桁の2進表現が
β(2)n(z)=an1an2a0(2)
ならば,m桁の2進表現は
β(2)m(z)=an1an1mnan1an2a0(2)
で与えられる.

 δ(2)m(an1an1mnan1an2a0(2))=an12m1+an12m2++an12n1+an22n2++a0=an1(2m1+2m2++2n1)+an22n2++a0=an1(2m1+2m12n1)+an22n2++a0=an12n1+an22n2++a0=δ(2)n(an1an2a0(2))=z
より,
β(2)m(z)=an1an1mnan1an2a0(2)
が成り立つ.

2進表現の制限

整数z[2m1,2m11]m桁の2進表現を
β(2)m(z)=am1am2anan1an2a0(2)
とする.このとき,次は同値である:

  1. z[2n1,2n11];
  2. am1=am2==an=an1.

さらに,この同値な条件のもとで,整数zn桁の2進表現は
β(2)n(z)=an1an2a0(2)
で与えられる.

(i)(ii)

整数z[2n1,2n11]n桁の2進表現を
β(2)n(z)=bn1bn2b0(2)
とおく.このとき補題4より
β(2)m(z)=bn1bn1mnbn1bn2b0(2)
であるから,
β(2)m(z)=am1am2anan1an2a0(2)
と比較して
am1=am2==an=an1=bn1
および
ai=bi, n2i0
を得る.

(ii)(i)

w=δ(2)n(an1an2a0(2))[2n1,2n11]とおくと,補題4より
β(2)m(w)=an1an1mnan1an2a0(2)=β(2)m(z)
が成り立つので,z=w[2n1,2n11]を得る.

和の2進表現

整数z,w[2n1,2n11]について,z+w[2n1,2n11]が成り立つとする.このとき,非負整数β(2)n(z)+β(2)n(w)[0,2n+11]n+1桁の相対2進表現を
β(2)n(z)+β(2)n(w)=dndn1dn2d0(2)
とすると,整数z+w[2n1,2n11]n桁の2進表現は
β(2)n(z+w)=dn1dn2d0(2)
で与えられる.

M=β(2)n(z),N=β(2)n(w)[0,2n1]とおく.このとき
δ(M)+δ(N)={δ(M+N),0M+N2n1δ(M+N2n),2nM+N (2n+2n1++1 )
が成り立つことを示せばよい.(ただしδ=δ(2)nである.)

δ(M),δ(N)0のとき

δ(M)=M, δ(N)=NよりM+N=δ(M)+δ(N)[0,2n11]となるので
δ(M)+δ(N)=M+N=δ(M+N)
が成り立つ.

δ(M)0, δ(N)<0のとき

M2n11<Nであるから
δ(M)+δ(N)=M+(c(2)n(N))=M+(N2n)=(M+N)2n
が成り立つ.したがって,

  • 2n1M+N2n1のとき
    δ(M+N)=c(2)n(M+N)=(M+N)2n=δ(M)+δ(N)
    が成り立つ.
  • 2nM+Nのとき,
    M+N(2n11)+(2n1)<2n1+2n
    より0M+N2n<2n1であるから
    δ(M+N2n)=M+N2n=δ(M)+δ(N)
    が成り立つ.

δ(M),δ(N)<0のとき

2n1M,Nより2nM+Nであり,
2n1δ(M)+δ(N)=(c(2)n(M))+(c(2)n(N))=(M2n)+(N2n)=(M+N2n)2n
より
2n1=2n2n1M+N2n
となるので,
δ(M+N2n)=c(2)n(M+N2n)=(M+N2n)2n=δ(M)+δ(N)
が成り立つ.

命題6の

整数z,w[2n1,2n11]n桁の2進表現をそれぞれ
β(2)n(z)=an1an2a0(2),β(2)n(w)=bn1bn2b0(2)
とし,非負整数β(2)n(z)+β(2)n(w)[0,2n+11]n+1桁の相対2進表現を
β(2)n(z)+β(2)n(w)=dndn1dn2d0(2)
とする.このとき次は同値である:

  1. z+w[2n1,2n11];
  2. [an1bn1][an1=bn1=dn1]

(i)(ii)

an1=bn1のとき,z,wの正負とz+wの正負は一致するので,命題6よりan1=bn1=dn1を得る.

(ii)(i)

 an1bn1のとき:

z<0wとしてよい.このとき
2n1z+0z+w<0+w<2n1
が成り立つ.

 an1=bn1=dn1=0のとき:

z,w0よりβ(2)n(z)=z,β(2)n(w)=wであるから,
dn2ndn0dn2d0(2)=z+w<2n1+2n1=2n
よりdn=0を得る.よって
0z+w=00dn2d0(2)2n11
が成り立つ.

 an1=bn1=dn1=1のとき:

z,w<0であるから2n1z+wを示せばよい.まづ
β(2)n(z)+β(2)n(w)=(2n1+an22n2++a0)+(2n1+bn22n2++b0)=2n+(an2+bn2)2n2++(a0+b0)=dn2n+2n1+dn22n2++d0
よりdn=1がわかるので,
2n1+dn22n2++d0=(an2+bn2)2n2++(a0+b0)
が成り立つ.

  • [2,n]に対してan+bn{0,1,2}となることに注意する.
  • {[2,n]an+bn=2}=とすると,
    2n12n1+dn22n2++d0=(an2+bn2)2n2++(a0+b0)2n2++1=2n11
    となり不合理である.したがって
    k:=min{[2,n]an+bn=2}
    が定まる.
  • このとき,任意の[2,k1]に対してan+bn{0,1}であるが,実はan+bn=1が成り立つ.
    • 実際,k{[2,k1]an+bn=0}とすると
      2n12n1+dn22n2++d0=(an2+bn2)2n2++(ank+1+bnk+1)2nk+1+(ank1+bnk1)2nk1++(a0+b0)2n2++2nk+1+2(2nk1++1)=2n2++2nk+1+2(2nk1)=2n12
      となり不合理である.
  • よって
    z+w=(2n1+an22n2++a0)+(2n1+bn22n2++b0)2n+(an2+bn2)2n2++(ank+1+bnk+1)2nk+1+(ank+bnk)2nk=2n+2n2++2nk+1+22nk=2n+2n1=2n1
    が成り立つ.

計算例:足し算

具体的な数値で命題6を確認してみる.

(±3)+(±5)[23,231]=[8,7]の計算

3+(5)
  • β(2)4(3)+β(2)4(5)=0011(2)+1011(2)=01110(2)
  • β(2)4(3+(5))=β(2)4(2)=c(2)4(0010(2))=1110(2)
(3)+5
  • β(2)4(3)+β(2)4(5)=1101(2)+0101(2)=10010(2)
  • β(2)4((3)+5)=β(2)4(2)=0010(2)
(3)+(5)
  • β(2)4(3)+β(2)4(5)=1101(2)+1011(2)=11000(2)
  • β(2)4((3)+(5))=β(2)4(8)=c(2)4(1000(2))=1000(2)
3+5

3+5[24,241][23,231]に注意する.

  • β(2)4(3)+β(2)4(5)=0011(2)+0101(2)=1000(2)=β(2)4(8)
  • β(2)5(3)+β(2)5(5)=00011(2)+00101(2)=001000(2)
  • β(2)5(3+5)=β(2)5(8)=01000(2)

積の2進表現

整数z,w[2n1,2n11]について,zw[2n1,2n11]が成り立つとする.このとき,非負整数β(2)n(z)×β(2)n(w)[0,22n1]2n桁の相対2進表現を
β(2)n(z)×β(2)n(w)=d2n1dndn1dn2d0(2)
とすると,整数zw[2n1,2n11]n桁の2進表現は
β(2)n(zw)=dn1dn2d0(2)
で与えられる.

M=β(2)n(z),N=β(2)n(w)[0,2n1]とおく.このとき
δ(M)δ(N)=δ(dn1dn2d0(2))
が成り立つことを示せばよい.

δ(M),δ(N)0のとき

δ(M)=M, δ(N)=NよりMN=δ(M)δ(N)[0,2n11]となる.したがってMN2n桁の相対2進表現は
MN=00n0dn2d0(2)
となるので,
δ(M)δ(N)=MN=δ(dn1dn2d0(2))
が成り立つ.

δ(M),δ(N)<0のとき

M,N2n1であるが,

  • δ(M),δ(N)[2n1,1]
  • δ(M)δ(N)[1,2n11]
  • δ(2n1)=2n1

より,M,N>2n1でなければならない.このときc(M),c(N)[1,2n11]であり,
c(M)c(N)=(c(M))(c(N))=δ(M)δ(N)[0,2n11]
となる.ところで
L:=Mc(2)n(N)=Nc(2)n(M)=(M+N)2n>0
とおくと,
MN=L2n+c(M)c(N)
が成り立つので,
c(M)c(N)=dn1dn2d0(2)
を得る.したがって
δ(M)δ(N)=δ(dn1dn2d0(2))
が成り立つ.

δ(M)0, δ(N)<0のとき

M2n11<Nである.まづ
δ(M)δ(N)=M(c(N))=2n1
の場合を考える.このときM=2k,k[1,n2],と書けるので,
N=c(c(N))=c(2nk1)=2n2nk1=2n1++2nk+2nk1
となる.したがって
MN=2n+k1++2n+2n1
となるので,
δ(M)δ(N)=2n1=δ(100n1(2))=δ(dn1dn2d0(2))
が成り立つ.

以下,δ(M)δ(N)=Mc(N)[2n1+1,1]とする.このときM,c(N)[1,2n11]であり,
Mc(N)=δ(M)δ(N)[1,2n11]
となるので,Mc(N)=0bn2b0(2)とおくと,
δ(M)δ(N)=δ(0bn2b0(2))
と書ける.ここで
Dn=d2n12n1++dn
とおくと
M2n=MN+Mc(N)=(Dn2n+dn1dn2d0(2))+0bn2b0(2)
より,
0<dn1dn2d0(2)+0bn2b0(2)=(MDn)2n(2n1)+(2n1)<22n
となる.したがってMDn=1,すなわち
dn1dn2d0(2)+0bn2b0(2)=2n
が成り立つ.よってdn1=1であり,
δ(M)δ(N)=δ(0bn2b0(2))=(bn22n2++b0)=2n+(2n1+dn22n2++d0)=2n1+dn22n2++d0=δ(dn1dn2d0(2))
が成り立つ.

証明中の記号を用いると
δ(dn1dn2d0(2))=dn12n1+dn22n2++d0=MNDn2n2dn12n1=MN(Dn+dn1)2n
と書ける.したがって,

  • z,w0のとき,dn1=0であり,
    0=Dn+dn1
    が成り立つ.
  • z,w<0のとき,dn1=0であり,
    β(2)n(z)+β(2)n(w) n+1桁目を無視=(M+N)2n=L=Dn+dn1
    が成り立つ.
  • z0, w<0のとき,dn1=1であり,
    β(2)n(z)=M=Dn+dn1
    が成り立つ.

検算の役には立ちそう?

整数z,w[2n1,2n11]n桁の2進表現をそれぞれ
β(2)n(z)=aakaank2a0(2),β(2)n(w)=bbbbn2b0(2)11100(2)=β(2)n(2n1)
とする.このとき,
k+n1zw[2n1,2n11]
が成り立つ.
100(2)110(2)111(2)000(2)001(2)011(2)2n121012n11

命題5より
2nk1z<2nk1
および
2n1<w<2n1
が成り立つ.よってk+n1のとき
|zw|<22n2(k+)2n1
が成り立つ.

逆は成り立たない.実際

  • β(2)6(4)=000100(2)
  • β(2)6(7)=000111(2)

を考えると,47=28[25,251]=[32,31]だがk+=2+25=n1である.

計算例:掛け算

具体的な数値で命題7を確認してみる.

(±3)×(±7)=±21[25,251]=[32,31]の計算

それぞれの整数の2進表現は以下のようになる:

  • β(2)6(3)=000011(2)
  • β(2)6(3)=c(2)6(000011(2))=111101(2)
  • β(2)6(7)=000111(2)
  • β(2)6(7)=c(2)6(000111(2))=111001(2)
  • β(2)6(21)=010101(2)
  • β(2)6(21)=c(2)6(010101(2))=101011(2)
3×7
  • β(2)6(3)×β(2)6(7)=000011(2)×000111(2)=000000D6010101(2)
  • β(2)6(3×7)=β(2)6(21)=010101(2)
(3)×(7)
  • β(2)6(3)×β(2)6(7)=111101(2)×111001(2)=110110D6010101(2)
  • β(2)6(3)+β(2)6(7)=1110110(2)
  • β(2)6((3)×(7))=β(2)6(21)=010101(2)
3×(7)
  • β(2)6(3)×β(2)6(7)=000011(2)×111001(2)=000010D6101011(2)
  • β(2)6(3×(7))=β(2)6(21)=101011(2)
(3)×7
  • β(2)6(3)×β(2)6(7)=111101(2)×000111(2)=000110D6101011(2)
  • β(2)6((3)×7)=β(2)6(21)=101011(2)

(±6)×(±5)=±30[25,251]=[32,31]の計算

それぞれの整数の2進表現は以下のようになる:

  • β(2)6(6)=000110(2)
  • β(2)6(6)=c(2)6(000110(2))=111010(2)
  • β(2)6(5)=000101(2)
  • β(2)6(5)=c(2)6(000101(2))=111011(2)
  • β(2)6(30)=011110(2)
  • β(2)6(30)=c(2)6(011110(2))=100010(2)
6×5
  • β(2)6(6)×β(2)6(5)=000110(2)×000101(2)=000000D6011110(2)
  • β(2)6(6×5)=β(2)6(30)=011110(2)
(6)×(5)
  • β(2)6(6)×β(2)6(5)=111010(2)×111011(2)=110101D6011110(2)
  • β(2)6(6)+β(2)6(5)=1110101(2)
  • β(2)6((6)×(5))=β(2)6(30)=011110(2)
6×(5)
  • β(2)6(6)×β(2)6(5)=000110(2)×111011(2)=000101D6100010(2)
  • β(2)6(6×(5))=β(2)6(30)=100010(2)
(6)×5
  • β(2)6(6)×β(2)6(5)=111010(2)×000101(2)=000100D6100010(2)
  • β(2)6((6)×5)=β(2)6(30)=100010(2)

2冪による乗除:算術シフト

正整数Nに対してNq±kの相対q進表現はNの相対q進表現の左右に0を加減することで得られる.同様のことを整数の2進表現について考える.

左算術シフト

z[2n1,2n11], k[1,n1]とし,整数zn桁の2進表現を
β(2)n(z)=an1an2a0(2)
とする.このとき次は同値である:

  1. z2k[2n1,2n11];
  2. an1=an2==ank=ank1.

さらに,この同値な条件のもとで,整数z2kn桁の2進表現は
β(2)n(z2k)=ank1ank2a000k(2)
で与えられる.

命題5より
z2k[2n1,2n11]2n1z2k<2n12nk1z<2nk1z[2(nk)1,2(nk)11]an1=an2==ank=ank1
を得る.

以下,z2k[2n1,2n11]とする.

  • k=n1のとき
    β(2)n(z)=aaa(2)
    すなわちz{1,0}であり,したがって
    β(2)n(z2n1)=a00n1(2)
    が成り立つ.
  • k<n1のとき,β(2)n(2k)=2kより非負整数β(2)n(z)×β(2)n(2k)2n桁の相対2進表現は
    β(2)n(z)×β(2)n(2k)=00nkan1an2ankank1ank2a000k(2)
    であるから,命題7より
    β(2)n(z2k)=ank1ank2a000k(2)
    が成り立つ.
10[27,271]=[128,127]
  • β(2)8(10)=c(2)8(00001010(2))=11110110(2)
  • δ(2)8(11101100(2))=c(2)8(11101100(2))=(00010100(2))=20=(10)21
  • δ(2)8(11011000(2))=c(2)8(11011000(2))=(00101000(2))=40=(10)22
  • δ(2)8(10110000(2))=c(2)8(10110000(2))=(01010000(2))=80=(10)23
  • δ(2)8(01100000(2))=01100000(2)=96(10)24[128,127]
右算術シフト

z[2n1,2n11], k[1,n1]とし,整数zn桁の2進表現を
β(2)n(z)=an1an2a0(2)
とする.このとき次は同値である:

  1. z2k[2n1,2n11];
  2. ak1=ak2==a0=0.

さらに,この同値な条件のもとで,整数z2kn桁の2進表現は
β(2)n(z2k)=an1an1kan1an2ak(2)
で与えられる.

(i)(ii)

整数w:=z2k[2n1,2n11]n桁の2進表現を
β(2)n(w)=bn1bn2b0(2)
とする.このときw2k=z[2n1,2n11]であるから,命題9より
bn1=bn2==bnk=bnk1
であり,
β(2)n(w2k)=bnk1bnk2b000k(2)
が成り立つ.これを
β(2)n(z)=an1an2akak1a0(2)
と比較して
{bi=ak+i,nk1i0aj=0,k1j0
を得る.よって
β(2)n(z2k)=β(2)n(w)=an1an1kan1an2ak(2)
が成り立つ.

(ii)(i)

仮定より
z=δ(2)n(an1an2ak00k(2))=an12n1+an22n2++ak2k=(an12nk1+an22nk2++ak)2k
が成り立つので,
z2k=an12nk1+an22nk2++ak=δ(2)nk(an1an2ak(2))[2nk1,2nk11][2n1,2n11]
が成り立つ.

48[27,271]=[128,127]
  • β(2)8(48)=c(2)8(00110000(2))=11010000(2)
  • δ(2)8(11101000(2))=c(2)8(11101000(2))=(00011000(2))=24=(48)21
  • δ(2)8(11110100(2))=c(2)8(11110100(2))=(00001100(2))=12=(48)22
  • δ(2)8(11111010(2))=c(2)8(11111010(2))=(00000110(2))=6=(48)23
  • δ(2)8(11111101(2))=c(2)8(11111101(2))=(00000011(2))=3=(48)24
  • δ(2)8(11111110(2))=c(2)8(11111110(2))=(00000010(2))=2(48)25[128,127]

参考文献

投稿日:2024128
更新日:202422
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

うすい
65
14143
学んだことをまとめています.

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 正整数のq進表現とqn桁の補数
  2. 正整数のq進表現
  3. qn桁の補数
  4. 計算の工夫
  5. 整数の2進表現
  6. 2n桁の補数
  7. 整数の2進表現
  8. 2進表現の延長と制限
  9. 和の2進表現
  10. 計算例:足し算
  11. 積の2進表現
  12. 計算例:掛け算
  13. 2冪による乗除:算術シフト
  14. 参考文献