b2KIT

Binary Calculator

Perform addition, subtraction, multiplication, and division on binary numbers with step-by-step visualization.

Tested tool guide Tested browser tools Checked August 16, 2026

What Binary Calculator does, with a checked example

In binary there are only two digits, so a column that sums to 2 does not write '2': it writes 0 and carries 1. This tool performs addition, subtraction, multiplication, and division on two binary numbers and lays the work out as you would write it by hand, with carries shown above the columns, borrows marked in subtraction, partial products stacked in multiplication, and quotient and remainder given for division. Results are displayed in binary, and the thing users most often trip on is that every digit entered is read in base 2: '10' means two, not ten.

Worked example

A concrete input and expected output from the current implementation.

Input

1011 + 1101

Expected output

  1111   (carries)
  1011
+ 1101
-------
 11000

Worked right to left: 1 + 1 writes 0 and carries 1, and that carry keeps propagating, so each of the next three columns also writes 0 and carries; the final 1 + 1 + carry writes 1 and produces the leftover carry that becomes the leading bit. In decimal the same sum is 11 + 13 = 24, and 11000 is 16 + 8.

How the result is produced

1

Right-to-left carries and borrows

Addition works right to left: each column adds its two digits plus the incoming carry, writes the low bit, and passes 1 onward when the sum reaches 2. A leftover carry becomes a new leading bit. Subtraction borrows from the nearest 1-bit leftward. Multiplication stacks one partial product per multiplier bit and sums them with shifts. Division is binary long division, subtracting shifted divisors to build the quotient.

2

What the tool accepts and how it shows steps

Each operand is a string of 0 and 1 characters; any other digit is rejected. Operands of different lengths align by their least significant bits, and leading zeros are ignored. The step view renders each column's intermediate state: a carry row above an addition, marked borrows in a subtraction, stacked partial products, and the running quotient and remainder in a division.

Good uses

  • Checking hand-worked answers from a number-systems course or practice sheet, where a single misplaced carry propagates through an entire column chain.
  • Confirming bit-level arithmetic while debugging low-level code or hardware work, such as adding two register values or bit masks that are easier to reason about in base 2 than in decimal.
  • Tracing through a binary calculation step by step to understand the algorithm itself, for example seeing where the carries appear in 1011 + 1101 before converting the result to decimal.

Limits and checks

  • Every digit is read in base 2. '10' is the number two, so 10 + 10 returns 100 (decimal 4), never 20; to work with decimal quantities, convert them to binary first (ten is 1010).
  • Operands are unsigned whole numbers. There is no sign bit or two's-complement reading, so a leading 1 in a longer result is a bigger value, not a negative marker, and subtracting a larger number from a smaller one has no representable answer.
  • Division ends in a quotient and a remainder, not a fraction. Many binary fractions repeat forever (1/3 is 0.010101...), so expect an integer remainder rather than decimal-point digits when the divisor does not divide evenly.

Common questions

Why does 111 + 1 come out as 1000 instead of something like 112?

Because binary has no digit 2. The rightmost column sums to 2, so it writes 0 and carries 1; the carry cascades through the remaining columns, each writing 0 and carrying, and the final carry becomes a new leftmost bit. So 111 + 1 = 1000, which is 7 + 1 = 8 in decimal. The carry row in the step view shows this propagation.

Can I enter decimal numbers and have it convert them?

No. The tool reads every character as a base-2 digit, so it is designed for binary input only; convert decimal values yourself first. Ten becomes 1010, so a decimal 10 + 10 becomes 1010 + 1010 = 10100, which is 20. If your entries contain digits 2-9, that is a sign the values were written in decimal by mistake.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools