計算ツール
数学情報基本情報組込み

2進数足し算 計算ツール|繰り上がり付き加算・2の補数・10/16進変換

2進数(バイナリ)の足し算を、繰り上がり付きで即時計算。10進・16進・8進を同時表示、オーバーフロー検出2の補数による符号付き演算まで対応します。基本情報技術者試験・応用情報技術者試験、組込みソフトウェア開発、デジタル回路設計、CPU論理設計、TCP/IP・IPアドレス計算などで頻用される基礎公式を、情報処理推進機構(IPA)の公式試験基準に照らして解説します。

最終更新:2026-08-02/監修:計算ツールズ編集部

2進数足し算 計算機

計算式と基本ルール

2進数の演算はコンピュータの最も基礎的な処理。10進数と同じ位取り記数法ですが、繰り上がりが「10」ではなく「2」で発生する点だけが異なります。

2進数の基本表現

2進数 = ビット列(0/1のみで構成) × 位ごとの重み(2ⁿ)

2進数(binary)は、0と1の2つの数字だけで数を表現する記数法です。各桁は右から順に 2⁰=1, 2¹=2, 2²=4, 2³=8, 2⁴=16... の重みを持ち、10進数と同じ位取り記数法で機械的に変換できます。例えば 1010₍₂₎ = 1×8 + 0×4 + 1×2 + 0×1 = 10₍₁₀₎。

足し算の基本ルール

0 + 0 = 0(繰り上がりなし)

0 + 1 = 1(繰り上がりなし)

1 + 0 = 1(繰り上がりなし)

1 + 1 = 10(繰り上がりあり: この桁は0、上位桁に1加算)

2進数の加算は10進数と同じ「位ごとに足して繰り上がりを上位に送る」というシンプルな仕組みで動きます。10進で「9+1=10」となるように、2進で「1+1=10」となるのが本質的な違いです。

ハードウェア実装

1桁の2進加算器は半加算器(HA: Half Adder)と呼ばれ、XOR回路(和)とAND回路(繰り上がり)の2素子で構成できます。桁を連ねた全加算器(FA: Full Adder)を並べたものがCPUの算術論理演算装置(ALU)の基礎。JIS X 0021「情報処理用語―数学演算」でも定義される情報工学の基本回路です。

桁数と扱える最大値

nビットの2進数で表現できる整数の範囲は、無符号で0〜2ⁿ-1、符号付き(2の補数)で-2ⁿ⁻¹〜2ⁿ⁻¹-1。例: 8ビットなら無符号0〜255、符号付き-128〜+127。CPUのレジスタ幅(64ビット)は最大 約1.844×10¹⁹(無符号)まで扱え、通常のアプリケーションで桁溢れになることは稀です。

2進・10進・16進の違い

コンピュータ内部の演算はすべて2進で行われますが、人間が読み書きしやすい形式として10進・16進も併用されます。それぞれの記数法の特徴を整理します。

コンピュータ上での数値表現に頻出する記数法を整理します。

記数法基数使用数字主用途
2進数(binary)20, 1回路・CPU・機械語
8進数(octal)80-7UNIXパーミッション
10進数(decimal)100-9日常計算
16進数(hexadecimal)160-9, A-Fメモリアドレス・色コード

2進数は桁数が長くなりがちなため、実務では4ビットを1桁の16進にまとめて表記します。例: 1010 1100₍₂₎ = AC₍₁₆₎。C言語では0b1010(2進)、0xAC(16進)、0o12(8進)、Pythonではbin()hex()oct()で相互変換します。

2進数足し算 基本パターン早見表

手計算の練習・試験対策で頻用する代表パターンです。

4ビット×4ビットの主要パターン。手計算での確認に便利です。

A (2進)B (2進)A+B (2進)10進換算
0001000100101 + 1 = 2
0011000101003 + 1 = 4
0101001110005 + 3 = 8
0111000110007 + 1 = 8
10100101111110 + 5 = 15
101011001011010 + 12 = 22
111100011000015 + 1 = 16(オーバーフロー)
111111111111015 + 15 = 30
101010100101010111111111170 + 85 = 255
1111111100000001100000000255 + 1 = 256(8bit桁溢れ)
1000000010000000100000000128 + 128 = 256

実際のCPU内では、桁上げ伝搬加算器(Ripple Carry Adder)や桁上げ先見加算器(Carry Lookahead Adder)がハードウェアで並列処理し、1クロックで数十ビットの加算を完了させます。

10進⇔2進 変換早見表(0〜31)

10進2進16進10進2進16進
000000161000010
100011171000111
200102181001012
401004201010014
810008241100018
101010A26110101A
151111F31111111F

桁数の目安: 8ビットで0〜255、16ビットで0〜65,535、32ビットで約42億、64ビットで約1,844京。IPv4アドレスは32ビット、IPv6は128ビット。

繰り上がりの仕組み

2進加算での「繰り上がり」は、CPU内の加算器回路が実際に行っている動作です。人間の手計算とハードウェア動作が完全に一致するため、原理を理解すればデバッグ・設計にも直結します。

2進数足し算では、各桁を右(最下位ビット)から順に処理し、繰り上がり(キャリー)を上位桁に伝搬させます。例えば 1011 + 0110 は以下のように処理されます。

  1 0 1 1     (A = 11)
+ 0 1 1 0     (B = 6)
─────────
     1 1     (最下位: 1+0=1, 次: 1+1=10→0繰上1)
   1        (次: 0+1+1(繰上)=10→0繰上1)
  1         (次: 1+0+1(繰上)=10→0繰上1)
─────────
  1 0 0 0 1  (合計 = 17)

これはCPU内の桁上げ伝搬加算器(Ripple Carry Adder)の動作そのもの。高速化のため実際のCPUは「桁上げ先見加算器(Carry Lookahead Adder)」を使い、複数桁を並列処理します。

2の補数と符号付き演算

負数の扱いは2進演算の応用範囲を大きく広げる重要概念。加算器のみで減算を実現できるため、CPUのハードウェア設計を大幅に簡略化します。

コンピュータでの負数表現は、2の補数(two's complement)方式が標準です。JIS X 0201やIEEE規格でも採用されています。

2の補数の作り方

  1. 絶対値を2進数で表現する
  2. 各ビットを反転(0→1, 1→0)する
  3. 1を加算する

例: 8ビットで -5 を表現するには、+5 = 00000101 → 反転 11111010 → +1 → 11111011 = -5。

符号付き加算の例

8ビット符号付き整数の範囲は -128 〜 +127。例えば 5 + (-3) は、00000101 + 11111101 = (1)00000010 = +2 (8ビットに切り詰めて先頭のキャリーは無視)。減算が加算回路で実現できるのが2の補数の最大の利点です。

オーバーフローの検出

符号付き演算で、両方が正で結果が負(または両方が負で結果が正)になった場合はオーバーフロー。ハードウェアでは最上位ビットへのキャリー入力とキャリー出力のXORで検出します。

実務例で見る2進数足し算

例1: 8ビットカウンタのオーバーフロー

8ビット無符号カウンタで 250 + 10 = 260 → 260 mod 256 = 4。9ビット目に繰り上がった1が捨てられて4になります。組込みシステムでのループカウンタ管理では、16ビットや32ビットに拡張するか、飽和演算(255で頭打ち)にするかの設計判断が必要です。

例2: IPv4サブネットマスク計算

IP 192.168.10.100(11000000.10101000.00001010.01100100)とマスク 255.255.255.0(11111111.11111111.11111111.00000000)のAND演算でネットワーク部 192.168.10.0 を得ます。ANDは各ビットの積で、2進加算の基礎素子と同じXOR/ANDゲート組合せで実装可能。

例3: 2の補数による減算実装

8ビットで 20 - 15 は、20 + (-15) = 00010100 + 11110001 = (1)00000101 = 5。減算専用回路が不要になり、加算器のみで四則演算の減算が実現できます。ARMやIntelなど全CPUで採用される基本アーキテクチャです。

例4: CRCチェックサム(XORベース)

Ethernetフレームの誤り検出に使うCRC-32は、送信データを多項式で除算(XOR演算の連鎖)して32ビットの余りを付加。受信側で同じ計算をして余りが0なら正常。1ビットの誤りも高確率で検出可能な仕組みです。

例5: 浮動小数点(IEEE 754)の加算

0.1 + 0.2 = 0.30000000000000004 になる有名な問題。IEEE 754 倍精度では 0.1 = 3FB999999999999A(16進)、0.2 = 3FC999999999999A で、加算後に丸め処理で誤差が発生。金額計算では整数(円→銭)扱いか BigDecimal 等の専用ライブラリで対応します。

業界での応用

CPU論理設計・ALU

加算器(半加算器・全加算器・桁上げ先見加算器)はCPUの算術論理演算装置(ALU)の中核。Intel/AMD/ARMプロセッサすべての基本回路。Verilog/VHDLでのRTL設計、JIS C 6151(半導体集積回路)関連基準。

組込みソフトウェア開発

マイコン(ARM Cortex-M、AVR、PIC)のレジスタ操作でビット演算・2進加算を多用。センサ値の平均・累積、通信プロトコルのチェックサム計算、割り込みマスク設定。IPA組込みスキル標準(ETSS)対応。

ネットワーク・IPアドレス設計

IPv4のサブネットマスク計算、ネットワーク・ホスト部の分離、CIDR記法の展開。IPv6の128ビットアドレス操作。RFC791/RFC4291準拠。ネットワークスペシャリスト試験の頻出範囲。

基本情報技術者試験・応用情報

IPA主催の国家試験。午前問題「基礎理論」で2進数演算、2の補数、シフト演算、論理演算が毎年10問前後出題。桁あふれ・浮動小数点(IEEE 754)の理解が必須。

デジタル回路・FPGA設計

論理ゲート(AND/OR/NOT/XOR)から構成する加算器の設計、シフトレジスタ、フリップフロップ。Xilinx/Altera(現Intel)のFPGA開発でVerilog/VHDLコードから実際の回路にコンパイル。

通信プロトコル・誤り検出

CRC(巡回冗長検査)、ハミング符号、パリティビットは2進加算(XOR)の応用。Ethernet・Wi-Fi・Bluetoothで実装。IEEE 802系規格、ITU-T勧告に準拠した実装が求められる。

よくある間違い・注意点

  • 桁あふれ(オーバーフロー)の無視 — 8ビット無符号で255+1は0(9ビット目が消える)。組込みシステムでのループカウンタで暴走の原因になります。桁数を事前に見積もる習慣を。
  • 符号付き/符号なしの混同 — 8ビットの11111111は無符号で255、2の補数(符号付き)で-1。演算前にどちらの解釈かを必ず確認してください。
  • ビット反転と2の補数の混同 — ビット反転(1の補数)は各桁を0↔1反転のみ。2の補数は反転+1。負数表現に使うのは2の補数です。
  • 基数(prefix)の書き忘れ — 「10」だけでは2進(=2)か10進(=10)か区別不能。C言語で0b, 0x, 0oを付ける、または末尾に₂・₁₀・₁₆の添え字を付けます。
  • MSB(最上位ビット)とLSB(最下位ビット)の順序取り違え — ビッグエンディアン(上位優先)とリトルエンディアン(下位優先)は通信プロトコル・ファイル形式で差異があります。バイト順にも注意。
  • 浮動小数点との混同 — 2進加算は整数(fixed-point)の話。浮動小数点(float, double)はIEEE 754規格に基づき、指数部・仮数部の別処理が必要。0.1+0.2=0.30000...4 になる有名な問題も浮動小数点の性質。
  • 符号拡張の忘れ — 8ビットから16ビットへの拡張時、符号付きなら最上位ビットを16ビット目までコピー(符号拡張)、符号なしなら0で埋めます(ゼロ拡張)。
  • 先頭0の扱い — 「00101010」と「101010」は同じ42。ただし、C言語では先頭0が付いた 012 は8進の12(=10進10)と解釈されるため、意図せず異なる値になる場合があります。

関連する規格・法令

  • JIS X 0021 ― 情報処理用語―数学演算。2進・10進・16進の演算、桁上げ、補数の定義。
  • JIS X 0212 ― 情報交換用漢字符号―補助漢字。文字コードでの2進表現の基礎。
  • IEEE 754 ― Standard for Floating-Point Arithmetic。浮動小数点数の国際標準規格。
  • ISO/IEC 10646 ― Universal Coded Character Set (UCS)。Unicodeの基盤規格。
  • RFC 791 / RFC 4291 ― IPv4 / IPv6のアドレス構造。2進数によるアドレス設計。
  • JIS C 6151 ― 半導体集積回路。加算器・ALU等のデジタル回路の分類。
  • 情報処理技術者試験基準(IPA) ― 基本情報・応用情報の出題範囲。基礎理論分野で2進演算が必修。
  • IEC 60559 ― IEEE 754の国際電気標準会議版。浮動小数点算術の国際規格。
  • ISO/IEC 9899 ― C言語の国際標準規格。ビット演算子・整数型の定義。

参考文献・公的資料

より正確な仕様や試験対策情報を確認したい場合は、以下の公的機関の資料を参照してください。

※本ページの計算結果は概算値ではなく、標準的な整数演算に基づく厳密な値です。ただし、大きな数の演算ではJavaScriptの数値精度限界(2^53未満)を超える場合があります。試験対策や実装での正確性については、上記IPA試験基準、IEEE 754、JIS X 0021の一次資料を参照し、必要に応じて有資格者(情報処理技術者、電気主任技術者等)の判断を仰いでください。

よくある質問(FAQ)

2進数足し算の基本ルールは?

各桁で 0+0=0、0+1=1、1+0=1、1+1=10(この桁は0で上位桁に1繰り上がり)。これを最下位ビットから順に処理して繰り上がり(キャリー)を伝搬させます。10進の「9+1=10」と同じ考え方で「1+1=10」となるのがポイントです。

2進数の負数はどう表現する?

2の補数(two's complement)方式が標準。絶対値を2進数化 → 各ビット反転 → 1を加算。例: 8ビットで -5 は +5(00000101) を反転(11111010) → +1 → 11111011。この方式なら減算を加算回路で実現でき、+0と-0の区別も生じません。

桁あふれ(オーバーフロー)とは?

ビット幅(例えば8ビット)を超える結果になる現象。無符号8ビットで 255+1=256 は9ビット目が捨てられて 0 になります。符号付きでは 127+1 = -128 と符号が反転。組込みシステムでのループカウンタで暴走の原因になるため、必ず桁数を事前に見積もる必要があります。

10進から2進への変換方法は?

整数部は2で割った商と余りを繰り返し、余りを下から並べます。例: 13 → 13/2=6余1 → 6/2=3余0 → 3/2=1余1 → 1/2=0余1 → 下から読んで1101。プログラムでは N.toString(2) (JS) や bin(N) (Python) で一発変換可能です。

2進と16進、なぜ相互変換が簡単?

16 = 2⁴ なので、2進の4桁がちょうど16進の1桁と対応します。例: 1010 1100₂ = A C₁₆ = AC₁₆。CPUのメモリアドレス・レジスタ値は32ビットや64ビットで、2進表記だと長すぎるため16進で表記するのが実務標準です。

基本情報技術者試験での出題頻度は?

IPA(情報処理推進機構)の午前試験で「基礎理論」分野として毎年10問前後出題。2進・16進変換、2の補数、シフト演算、論理演算、浮動小数点(IEEE 754)は基本項目。過去問演習でパターン学習が有効です。

ハミング符号やCRCと2進加算の関係は?

誤り検出・誤り訂正符号は、通信データを多項式で扱い、XOR(排他的論理和)による加算で計算します。XORは2進の加算から繰り上がりを無視した演算と同じで、ハードウェア実装が高速。Ethernet・Wi-Fi・USBなど主要通信規格すべてで使用されます。

JavaScriptで2進数を扱う方法は?

parseInt("1010", 2) で2進→10進、(10).toString(2) で10進→2進。ビット演算子は &(AND)、|(OR)、^(XOR)、~(NOT)、<<(左シフト)、>>(右シフト)。ただしJSのビット演算は32ビット整数として扱われます。

IPアドレスの計算で2進数が使われるのは?

IPv4は32ビット(4オクテット×8ビット)、IPv6は128ビット。サブネットマスクの計算、ネットワーク部とホスト部の分離、CIDR(例: /24)の展開はすべて2進数で行います。ネットワーク管理者・スペシャリストの基礎スキル。RFC 791/RFC 4291準拠。

半加算器と全加算器の違いは?

半加算器(HA)は「2つのビットを加算し、和と繰り上がりを出力」する回路(XOR+AND)。全加算器(FA)は「2つのビット+下位からの繰り上がりを加算」する回路(HAを2つ+OR)。全加算器を連ねたものがCPUの加算器の基本構造です。

浮動小数点の計算で誤差が出るのはなぜ?

IEEE 754の浮動小数点は仮数部を2進で表現するため、10進の 0.1 が2進では無限循環小数(0.00011001100...)になります。有限ビットで丸めるため 0.1+0.2 = 0.30000000000000004 のような誤差が発生。金額計算などでは整数(円→銭単位)で扱うか、専用ライブラリ(BigDecimal等)を使います。

2進数の掛け算・割り算はどう計算する?

掛け算は10進と同じ筆算方式で、各桁の1に対して被乗数をシフトして加算。実装ではシフト+加算のループ。割り算は減算+シフトの繰り返し。CPUには専用の乗算器・除算器が搭載されており、加算器より複雑ですが原理は同じです。