Share to: share facebook share twitter share wa share telegram print page

2の補数

2の補数にのほすう: two's complement)は、2位取り記数法の基数とした場合の基数の補数である[1][2][3][4][5][6][注 1]。すなわち、整数 x とのが基数 2 2n となる数 xc = 2nx のことをいう[注 3](例:24 = 16 について、5 に対応する2の補数は 11 = 16 − 5)。

x とその2の補数 xc二進法で表せば、2の補数 xcx との和が n + 1 桁に繰り上がる最小の数といえる(例:24 = 100002 = (1111 + 1)2 について[注 2]510 = 01012 に対応する2の補数は 1110 = 10112 = (1111 − 0101 + 1)2)。

2の補数を得る手順は、基数の補数および減基数の補数の定義から、1の補数1 を足す操作となる。1の補数は二進表示された数の各位の値(ビット)を 0 から 1、また 1 から 0 に置き換える操作(ビット反転)によって得られるため(例:0101 → 1010)、2の補数はしばしば元の数をビット反転して1を足したものとして定義される。

ある数の2の補数を反数と見なせば、二進法において決まった桁数を持った数をそれぞれ非負の数と負の数に対応づけられる(#負の数の表現)。 特に n 桁の二進数について 0 から 2n−1 − 1(例:n = 8 なら 0 から 127)の範囲で符号なし表現と一致させたものは2の補数表現にのほすうひょうげん: two's complement representation)または2の補数表記にのほすうひょうき: two's complement notation)と呼ばれる(#2の補数表現)。

2の補数表現はコンピュータの分野において、固定長符号付きの整数型固定小数点数の表現に利用されている。

また2の補数表現は加算器で減算をするために使われる。

計算例

以下に#2の補数表現における計算例を示す。

補数であることの確認

例えば、4桁の二進数 00102 (= 2) に対する2の補数は 11102 である。実際、これらを足し算は以下のようになる:

結果は 100002 = 24 = 16 になっており、1110200102100002 に対する補数になっていることが確かめられる。また5桁目以降を無視し下4桁だけ取り出せば、結果は 00002 となる。つまり、00102 にその2の補数 11102 を足すということは 0010 から 0010 自身を引くということと同じ意味を持つ。言い換えれば、 11102 は負数 −2 を表している。

引き算と補数の足し算の比較

例えば、二進数 01012 (= 5) から二進数 00112 (= 3) を引く場合、以下のように計算できる:

一方、二進数 00112 の2の補数 11012 を足す計算は、以下のようになる:

5桁目以降を無視し下4桁を取り出せば、こちらも結果は 00102 (= 2) になり、引き算の場合と一致する。また、11012 は負数 −3 を表していることが分かる。

算術オーバーフローの例

足し算の結果、算術オーバーフローが起きることがある。

例えば、二進数 01012 (= 5) と二進数 00112 (= 3) の足し算は以下のように計算できる:

結果は 10002 となるが、これは2の補数表現において負の整数 −8 に対応し、通常の足し算で期待される結果 5 + 3 = 8 と一致しない。

同様に、二進数 11012 (= −3) と二進数 10102 (= −6) の足し算は期待する結果を与えない:

結果は 01112 (= 7) となり、通常の足し算で期待される結果 (−3) + (−6) = −9 と一致しない。

負の数の表現

2の補数を用いて、二進法で表された数(二進数)を整数に対応づけられる。2の補数の定義より、n[注 4]の二進数 x とその補数 xc は以下の関係を満たす[7]

2n倍数0 と同一視すれば、上記の補数の関係は 2n を法とする合同式に置き換えられる[8]

これは x の補数 xcx反数 x と見なすことを意味する。すなわち、数 y から x を引く操作は、数 y と補数 xcたし算に置き換えられる[9][10]

同様に反数 xかけ算は補数の積に置き換えられる[10]

2の補数表現

#負の数の表現節の方法で負の数の計算を行えるが、具体的な数値計算を行うには、どの二進数ビット列)がどの数値を表すかという対応関係を定義しなければならない。0 から 2n−1 − 1 までの非負整数をそのまま通常の位取り記数法における二進表示、

に対応づければ、これらの数の補数として整数に対する2の補数表現が得られる:

具体例として、n = 4[注 4]の二進数における対応表を示す:

24 についての2の補数表現における、二進数(ビット列)と対応する数値の一覧
対応する数値 二進数 対応する数値 二進数
0 00002 - -
1 00012 −1 11112
2 00102 −2 11102
3 00112 −3 11012
4 01002 −4 11002
5 01012 −5 10112
6 01102 −6 10102
7 01112 −7 10012
- - −8 10002

結局、n 桁の二進数の k + 1 桁目の値を bk ∈ {0, 1} とすれば、2の補数表現は以下のように表せる[11]

最上位ビット bn−1符号ビットふごうビット: sign bit)と呼ばれ、数値の正負を決定する。すなわち、符号ビットが 0 なら非負の数値を表し、1 なら負の数値を表す。

上記の数の補数は、以下のように表せる:

等比数列の和 を用いれば、上記の補数は以下のようにも表せる[11]

これは結局、元の数に負符号を付けた形となっている(ただし元の数が −2n−1 の場合は算術オーバーフローが発生する。オーバーフローをチェックせずラップアラウンドする場合、−2n−1 自身へ写る[注 5])。

2の補数表現の性質

符号なし整数との一致

2の補数表現は、符号ビットが 0 なら符号なし整数表現(つまり通常の二進法)に一致する[14]。この性質は符号・絶対値表現1の補数表現も持っている。

最小値と最大値の非対称性

2の補数表現において、n 桁(n 個のビット)の二進数で表せる数値の範囲は −2n−1 から +(2n−1 − 1) までである[14](例: n = 8 の場合、−27 = −128 から +(27 − 1) = +127)。最小値と最大値の絶対値を比較すると、負の数の範囲は正の数の範囲に対して 1 だけ大きく、非対称になっている。そのため、最小値の補数を求めようとすると算術オーバーフローが生じる(汎整数拡張によって型が格上げされる場合は除く)。この性質は符号・絶対値表現1の補数表現にはなく、符号・絶対値表現および1の補数表現での数値の範囲は −(2n−1 − 1) から +(2n−1 − 1) までと対称的になっている。

偶奇性の判定

2の補数表現において、整数偶奇性を判定するには最下位の桁(最下位ビット)が偶数奇数かを判定すればよい。すなわち二進数表示の最下位の値 b00 なら偶数であり 1 なら奇数であることが示せる[14]。同じ性質は符号・絶対値表現も持つが、1の補数表現においては最上位の桁(最上位ビット)の検査が必要であり、最上位ビットが 1 なら最下位ビットが 1、最上位ビットが 0 なら最下位ビットが 0 の場合に偶数となる。

正負の判定

2の補数で表される数は、符号ビット(最上位ビットbn−10 なら非負の値を取り 1 なら負の値を取る[14]。すなわち、負値か非負値かの判定は符号ビットのみから判別できる。符号・絶対値表現や1の補数表現ではゼロを表す二進数が一意でなく、符号ビットが 0+0 と符号ビットが 1−0 があるため、−0 が許容される限り、これらの表現では符号ビットのみから負数か非負数かを判定できない。

1の補数との関係

2の補数表現において、−1 は常にすべての位の値が 1 の二進数 111...112 に対応づけられる。従って、数をビット列とみなせば、ビット列 x とそのビットを反転[注 6]させたビット列 fx は常に以下を満たす:

上記より、x の2の補数は xc = fx + 1 と表せる。従って減法は、

と書き換えられる。ビット反転はまた1の補数を得る操作でもある。

右辺の (2n − 1) − xx に対する1の補数そのものであるから、ビット反転は1の補数を得る操作になっている。

元の数とのビットの一致

xn 桁の二進数表示の下位 m − 1 桁目まで位の値が 0 だった場合、2の補数 fx + 1 を求める際、ビット反転した値が桁上りによって再び反転するため、下位 M = min(m, n)[注 7]桁まで元の数とその2の補数の値が一致する。また残りの上位 nM 桁は、ビット反転 fx の上位 nM 桁に一致する。例えば、補数と元の数の位の値が一致する部分に下線を引けば、x = 0100 のビット反転は fx = 1011 であり、2の補数は fx + 1 = 1100 となる。同様に、1000 および 0000 のビット反転はそれぞれ 0111, 1111 であり、2の補数はそれぞれ 1000, 0000 となる(表も参照)。

24 についての2の補数表現における、補数と元の数との下位ビットの一致[注 8]
元の数と一致する下位ビットの桁数(M 1 2 3 4 4
元の数(x B3B2B11 B3B210 B3100 1000 0000
ビット反転(fx B3B2B10 B3B201 B3011 0111 1111
2の補数(fx + 1 B3B2B11 B3B210 B3100 1000 0000

脚注

注釈

  1. ^ 三進法における減基数の補数(基数マイナス1の補数)も「2の補数」と呼ばれるが(補数#呼称を参照)、本項では扱わない。
  2. ^ a b 下付きの添字は位取り記数法の基数を表す。基数自身の表記には十進法を用いる。
  3. ^ 本項では数 x の補数を下付きの添字 c を用いて xc と表す(例:(01112)c = 10012[注 2])。添字 c は complement の頭文字である。
  4. ^ a b ここでは n 桁目の値が 0 となるものも n 桁の数と呼んでいる。例えば 0001 は 4 桁の数である。
  5. ^ 実際、Javajava.lang.Math.abs(int) などは符号付き整数型の最小値に対して引数の値をそのまま結果として与える[12]。また、組み込みの整数演算は算術オーバーフローを検出しない[13]。一方でC言語C++において、2の補数表現による符号付き整数の最小値(例:INT_MIN)に単項マイナス演算子を作用させる(例:-INT_MIN)と、汎整数拡張により結果の型がオペランドの型より大きくなる場合を除き、算術オーバーフローが発生する。符号付き整数の算術オーバーフローは未定義動作を引き起こす。算術オーバーフローの例に関しては例えば INT32-C を参照。
  6. ^ ここでビット反転とは各ビットに対する否定演算を指す。すなわち入力が 0 なら 1 を出力し、入力が 1 なら 0 を出力する。
  7. ^ min はここで、与えられた数の中で最小の数を表す。
  8. ^ 上位ビットの B は任意の値を表す。また、BB のビット反転である。下線で示す部分は元の数と対応する2の補数で一致する下位ビットの範囲を示している。

出典

  1. ^ JIS X 0005:2002 2002, 05.08.04 2の補数.
  2. ^ ISO/IEC 2382:2015 2015, 2. Terms and definition. 2121100. twos complement.
  3. ^ JIS X 0005:2002 2002, 05.08.02 基数の補数.
  4. ^ ISO/IEC 2382:2015 2015, 2. Terms and definition. 2121098. radix complement.
  5. ^ JIS X 0005:2002 2002, 05.08.01 補数.
  6. ^ ISO/IEC 2382:2015 2015, 2. Terms and definition. 2121097. complement.
  7. ^ 水谷『数の補数表現』, pp. 2–3, 2.2 符号ビットと 2 の補数.
  8. ^ 西村『論理(スイッチング)回路と計算』, p. 14, 2の補数表現でなぜうまく行くのか?.
  9. ^ 水谷『数の補数表現』, p. 2, 2.1 補数.
  10. ^ a b 中野『代数入門』, p. 18, 5.1 合同式, 命題5.2.
  11. ^ a b 水谷『数の補数表現』, p. 3, 2.2 符号ビットと 2 の補数.
  12. ^ Java SE & JDK API Specification, java.lang.Math#abs(int).
  13. ^ Java Language Specification, 4.2.2. Integer Operations.
  14. ^ a b c d 西村『論理(スイッチング)回路と計算』, p. 18, 2の補数表現の性質.

参考文献

関連項目

Read other articles:

Ludwig I dari Bayern Ludwig I atau Louis I dalam bahasa Prancis (Strasbourg, 25 Agustus 1786 – Nice, 29 Februari 1868) adalah raja Bayern antara 1825 sampai revolusi 1848 negara-negara bagian Jerman. Ia adalah anak dari Maximilian I dan Wilhelmine dari Hessen-Darmstadt. Bapak baptisnya adalah Louis XVI dari Prancis. Ia menikah dengan Therese dari Saxe-Hildburghausen (1792-1854) pada Oktober 1810 dan pernikahannya dijadikan ajang Oktoberfest pertama. Artikel bertopik biografi Prancis ini adalah…

Часть серии статей о Холокосте Идеология и политика Расовая гигиена · Расовый антисемитизм · Нацистская расовая политика · Нюрнбергские расовые законы Шоа Лагеря смерти Белжец · Дахау · Майданек · Малый Тростенец · Маутхаузен · …

Wakil Bupati TegalPetahanaH. Sabilillah Ardie, B.Sc.sejak 8 Januari 2019Masa jabatan5 tahunDibentuk2004Pejabat pertamaH.M. Hammam Miftah, S.Ag., M.M.Situs webwww.tegalkab.go.id Berikut ini adalah daftar Wakil Bupati Tegal dari masa ke masa. No Wakil Bupati Mulai Jabatan Akhir Jabatan Prd. Ket. Bupati 1 H. M.Hammam MiftahS.Ag., M.M. 2004 2009 1   H.Agus RiyantoS.Sos., M.M. 2 H. M.Herry SoelistyawanS.H., M.Hum. 2009 2011 2   Jabatan kosong 2011 3 Januari 2013   H. M.Herry Soeli…

Taman Hutan Raya Bacharuddin Jusuf HabibieTahura B.J. HabibiePeta Wilayah Kabupaten GorontaloLokasiKabupaten Gorontalo, Provinsi GorontaloArea6.208 hektare (15.340 ekar; 62,08 km2)Dibuat22 Agustus 2022; 18 bulan lalu (2022-08-22)Dioperasikan olehUPTD Tahura B.J. Habibie Taman Hutan Raya Bacharuddin Jusuf Habibie (Tahura B.J. Habibie)[1] merupakan sebuah kawasan konservasi terpadu di Provinsi Gorontalo dan merupakan bagian dari kelompok hutan Pegunungan Boliyohuto. Tahura B…

Peta infrastruktur dan tata guna lahan di Komune La Bourgonce.  = Kawasan perkotaan  = Lahan subur  = Padang rumput  = Lahan pertanaman campuran  = Hutan  = Vegetasi perdu  = Lahan basah  = Anak sungaiLa Bourgonce merupakan sebuah komune di departemen Vosges yang terletak pada sebelah timur laut Prancis. Lihat pula Komune di departemen Vosges Referensi INSEE lbsKomune di departemen Vosges Les Ableuvenettes Ahéville Aingeville Ainvelle Allarmont Ambacourt …

منتخب تونغا لكرة القدم معلومات عامة بلد الرياضة  تونغا الفئة كرة القدم للرجال  رمز الفيفا TGA  الاتحاد اتحاد تونغا لكرة القدم كونفدرالية أوفك (أوقيانوسيا) الملعب الرئيسي مركز لوتو تونغا سوكا الموقع الرسمي الموقع الرسمي  مراتب تصنيف الفيفا 196 (15 فبراير 2024)[1] أعلى …

Constituency of Bangladesh's Jatiya Sangsad Brahmanbaria-5Constituencyfor the Jatiya SangsadDistrictBrahmanbaria DistrictDivisionChittagong DivisionElectorate343,892 (2018)[1]Current constituencyCreated1984PartyAwami LeagueMember(s)Mohammad Ebadul Karim Bulbul Brahmanbaria-5 is a constituency represented in the Jatiya Sangsad (National Parliament) of Bangladesh since 2019 by Mohammad Ebadul Karim Bulbul of the Awami League. Boundaries The constituency encompasses Nabinagar Upazila.[2…

Keuskupan Banská BystricaDioecesis NeosoliensisBanskobystrická DiecézaKatolik Katedral Santo Fransiskus Xaverius di Banská BystricaLokasiNegara SlowakiaProvinsi gerejawiBratislavaStatistikLuas6.750 km2 (2.610 sq mi)Populasi- Total- Katolik(per 2015)605.284373,713 (61.7%)Paroki155InformasiDenominasiKatolik RomaRitusRitus RomaPendirian13 Maret 1776KatedralKatedral Santo Fransiskus Xaverius di Banská BystricaKepemimpinan kiniPausFransiskusUskupMarián Ch…

Disambiguazione – Se stai cercando altri significati, vedi Storia (disambigua). Allegoria della storia (Nikolaos Gysis, 1892) La storia (dal greco antico ἱστορία, historía, “ispezione [visiva]”, ricerca, conoscenza) è la disciplina che si occupa dello studio del passato tramite l'uso di fonti, cioè di documenti, testimonianze e racconti che possano trasmettere il sapere del passato.[1] Più precisamente, la storia è la ricerca sui fatti del passato e il tentativo di una…

Premier of Victoria from 2014 to 2023 The HonourableDaniel AndrewsAndrews in 201848th Premier of VictoriaIn office4 December 2014 – 27 September 2023MonarchsElizabeth IICharles IIIGovernorAlex ChernovLinda DessauMargaret GardnerDeputyJames MerlinoJacinta AllanPreceded byDenis NapthineSucceeded byJacinta Allan17th Leader of the Labor Party in VictoriaIn office3 December 2010 – 27 September 2023DeputyRob HullsJames MerlinoJacinta AllanPreceded byJohn BrumbySucceeded byJacinta…

Artikel ini bukan mengenai Kereta api Madiun Jaya Ekspres. Kereta api Madiun Ekspres singgah di stasiun Mojokerto. KA Madiun Ekspres merupakan KA eksekutif, dan bisnis tujuan Madiun-Surabaya PP. KA Madiun Ekspres berhenti di beberapa stasiun besar, antara lain Nganjuk, Kertosono, Jombang, dan Mojokerto. Stamformasi kereta ini hingga akhir operasionalnya ialah, 2 kereta bisnis (K2), 1 kereta makan pembangkit (KMP), 1 kereta eksekutif (K1), dan lokomotif BB301. Kereta api ini berangkat menuju Sura…

Eurovision Song Contest 2012Country SloveniaNational selectionSelection processMisija EMA 2012Selection date(s)Misija Evrovizija:Elimination shows:2 October 2011 – 11 December 2011Semi final:18 December 2011Final:8 January 2012Misija EMA 2012:26 February 2012Selected entrantEva BotoSelected songVerjamemSelected songwriter(s)Vladimir GraićHari Mata HariIgor PirkovičFinals performanceSemi-final resultFailed to qualify (17th)Slovenia in the Eurovision Song Con…

Municipality in Catalonia, SpainSanta OlivaMunicipalityStreet and castle of Santa Oliva Coat of armsSanta OlivaLocation in CataloniaCoordinates: 41°15′N 1°33′E / 41.250°N 1.550°E / 41.250; 1.550Country SpainCommunity CataloniaProvince TarragonaComarcaBaix PenedèsGovernment • MayorCristina Carreres Haro (2015)[1]Area[2] • Total9.6 km2 (3.7 sq mi)Population (2018)[3] • To…

B

  此條目介紹的是拉丁字母中的第2个字母。关于其他用法,请见「B (消歧义)」。   提示:此条目页的主题不是希腊字母Β、西里尔字母В、Б、Ъ、Ь或德语字母ẞ、ß。 BB b(见下)用法書寫系統拉丁字母英文字母ISO基本拉丁字母(英语:ISO basic Latin alphabet)类型全音素文字相关所属語言拉丁语读音方法 [b][p][ɓ](适应变体)Unicode编码U+0042, U+0062字母顺位2数值 2歷史發展…

Japanese composer and pianist (born 1971) Masashi Hamauzu浜渦 正志Hamauzu in 2012Born (1971-09-20) September 20, 1971 (age 52)Munich, West GermanyAlma materTokyo University of the ArtsOccupations Composer pianist lyricist Years active1996–presentMusical careerGenres Electronic classical ambient video game music Instrument(s)PianoWebsiteOfficial Website Musical artist Masashi Hamauzu (浜渦 正志, Hamauzu Masashi, born September 20, 1971) is a Japanese composer, pianist, an…

Emilio Aguinaldo, who led the Philippine Revolution against Spain, and Manuel L. Quezon, President of the autonomous Commonwealth of the Philippines under the United States Early polities in what is now the Philippines were small entities known as barangays, although some larger states were established following the arrival of Hinduism and Islam through regional trade networks. The arrival of Spanish settlers began a period of Spanish expansion which led to the creation of the Captaincy General …

Spagna Detentore della UEFA Nations League Uniformi di gara Casa Trasferta Sport Calcio Federazione RFEFReal Federación Española de Fútbol Confederazione UEFA Codice FIFA ESP Soprannome la Roja (La Rossa)la Furiala Furia roja (la Furia rossa)la Selección (la Selezione) Selezionatore Luis de la Fuente Record presenze Sergio Ramos (180) Capocannoniere David Villa (59) Ranking FIFA 8º[1] (26 ottobre 2023) Sponsor tecnico Adidas Esordio internazionale Spagna 1 - 0 Danimarca Anversa, Bel…

American handgun manufacturer Dan Wesson FirearmsCompany typeSubsidiary of CZ-USAIndustryDefense Products & ServicesFounded1968; 56 years ago (1968)FounderDaniel B. Wesson IIHeadquartersNorwich, New York, United StatesProductsFirearms and law enforcement goodsOwnerCZ-USAWebsitedanwessonfirearms.com Dan Wesson Firearms (DW), part of CZ-USA, is an American handgun manufacturer. The corporate headquarters, customer service and manufacturing plant is located in Norwich, New Yor…

FK VentspilsBerkas:FK Ventspils logo.svgNama lengkapFutbola Klubs VentspilsBerdiri1997StadionStadion Olimpiade Ventspils,Ventspils, Latvia(Kapasitas: 3.200)Presiden Guntis BlumbergsManajer Igors KļosovsLigaVirsliga2020Ke-4Situs webSitus web resmi klub Kostum kandang Kostum tandang Musim ini FK Ventspils merupakan sebuah tim sepak bola Latvia yang kini bermain di divisi utama Virsliga. Didirikan pada tahun 1997. Berbasis di Ventspils. Klub ini memainkan pertandingan kandangnya di Stadion Ol…

For other uses, see Clone Wars. 2002 video gameStar Wars: The Clone WarsNorth American PlayStation 2 cover artDeveloper(s)Pandemic StudiosPublisher(s)LucasArtsDirector(s)Greg BorrudDesigner(s)Eric Gewirtz, Jack D. DavisEngineZeroPlatform(s)GameCube, PlayStation 2, XboxReleaseGameCubeNA: October 29, 2002[1]EU: November 15, 2002PlayStation 2NA: December 10, 2002EU: February 7, 2003XboxNA: April 22, 2003EU: May 9, 2003Genre(s)ActionMode(s)Single-player, multiplayer Star Wars: The Clone Wars…

Kembali kehalaman sebelumnya