C# Decimal to Binary Conversion

Beginner
6 min read
Updated: Oct 2026
2 programs
Live preview

What Is Decimal to Binary Conversion?

Decimal (base 10) is the everyday number system. Binary (base 2) uses only bits 0 and 1. Conversion means rewriting a decimal integer as a string of bits.

Remember
Divide by 2 → remainder is the next bit (LSB first)
Reverse the remainders → MSB … LSB binary string

Example: 13
  13 ÷ 2 = 6 rem 1
   6 ÷ 2 = 3 rem 0
   3 ÷ 2 = 1 rem 1
   1 ÷ 2 = 0 rem 1
  Remainders (LSB→MSB): 1 0 1 1
  Binary (MSB→LSB):     1101
DecimalBinaryCheck
00special case
1311018+4+1
4210101032+8+2

How to Convert Decimal to Binary in C#

Four clear steps — then pick a remainder loop or the built-in formatter.

  1. Handle n == 0 by returning "0".
  2. While n > 0, record n % 2 and set n = n / 2.
  3. Reverse the collected remainders (or build the string from the front).
  4. Or call Convert.ToString(n, 2) for a one-line answer.
MethodIdeaTimeBest for
Remainder loopDivide by 2; reverse remaindersO(log n)Interviews, learning place values
Convert.ToString(n, 2)Built-in base-2 formattingO(log n)Production code, short answers

Pseudocode

Pseudocode
function DecimalToBinary(n):
    if n == 0:
        return "0"

    bits = empty list
    while n > 0:
        bits.append(n mod 2)
        n = n / 2

    reverse bits
    return join(bits)

Cheat Sheet

Keep these facts handy while writing the program.

TopicDetail
OperationDivide by 2; remainder is a bit
First remainderLSB (rightmost bit)
ZeroReturn "0" — do not skip
Built-inConvert.ToString(n, 2)
NegativesUsually restrict to n >= 0 in tutorials
Classic check13 → 1101

Live Preview

Enter a nonnegative integer to see the remainder steps and the binary result.

Nonnegative integers (capped at 2147483647). Tap a chip or type a value.

Result
n = 13
Remainders (LSB first): 1, 0, 1, 1
Binary = 1101

Worked Walkthrough — n = 13

Divide by 2 until the quotient is 0. Collect remainders, then reverse.

Calculation
13 ÷ 2 = 6  remainder 1   ← LSB
 6 ÷ 2 = 3  remainder 0
 3 ÷ 2 = 1  remainder 1
 1 ÷ 2 = 0  remainder 1   ← MSB

Remainders collected: 1 0 1 1
Reversed binary:      1 1 0 1  →  1101

Check: 8 + 4 + 0 + 1 = 13

C# Programs

Start with the remainder loop so you can explain every bit. Then use Convert.ToString for a short production-style answer.

Example 1 — Remainder Loop

Collect n % 2 values, then reverse them into a binary string.

C#
using System;
using System.Collections.Generic;
using System.Text;

class Program
{
    static string DecimalToBinary(int n)
    {
        if (n < 0)
        {
            throw new ArgumentException("Use a nonnegative integer.");
        }
        if (n == 0)
        {
            return "0";
        }

        List<int> bits = new List<int>();
        while (n > 0)
        {
            bits.Add(n % 2);
            n /= 2;
        }

        StringBuilder result = new StringBuilder();
        for (int i = bits.Count - 1; i >= 0; i--)
        {
            result.Append(bits[i]);
        }
        return result.ToString();
    }

    static void Main()
    {
        int number = 13;
        Console.WriteLine(number + " → " + DecimalToBinary(number));
    }
}

How It Works

  1. Reject negatives for this beginner version; return "0" immediately when n is zero.
  2. Each n % 2 is the next bit from the right (LSB first).
  3. n /= 2 shifts toward higher bits until the quotient becomes 0.
  4. Append bits from the end of the list so the string reads MSB to LSB.
  5. For 13, remainders 1,0,1,1 reverse to 1101.

Example 2 — Convert.ToString

Let the framework format the integer as base 2 after a quick nonnegative check.

C#
using System;

class Program
{
    static string DecimalToBinary(int n)
    {
        if (n < 0)
        {
            throw new ArgumentException("Use a nonnegative integer.");
        }
        return Convert.ToString(n, 2);
    }

    static void Main()
    {
        Console.WriteLine(DecimalToBinary(13)); // 1101
        Console.WriteLine(DecimalToBinary(42)); // 101010
        Console.WriteLine(DecimalToBinary(0));  // 0
    }
}

How It Works

  1. Keep the same nonnegative rule as the manual method.
  2. Convert.ToString(n, 2) means “write n using base 2.”
  3. Zero is handled correctly and returns "0".
  4. The result matches the remainder algorithm without storing a list.
  5. Use the loop in interviews when you must show the math; use this built-in in real projects.

Edge Cases & Pitfalls

Check these before calling the solution done.

n = 0

Return "0"

A bare while (n > 0) loop produces an empty string otherwise.

Reverse

LSB comes first

Printing remainders in collection order yields the bits backwards.

Negatives

Define the policy

Tutorials usually require n >= 0. Two’s complement needs a fixed width.

Width

Minimal vs padded

Default output drops leading zeros. Pad only when the problem asks for 8/16/32 bits.

Time and Space Complexity

ProgramTimeExtra space
Remainder loopO(log n)O(log n) for the bit list
Convert.ToString(n, 2)O(log n)O(log n) for the result string

Key Takeaways

  • Method: divide by 2; remainders are bits (LSB first).
  • Reverse: print from last remainder to first for normal binary.
  • Built-in: Convert.ToString(n, 2) after you know the algorithm.
  • Test set: 0 → 0; 13 → 1101; 42 → 101010.

One line: collect n % 2 remainders and reverse them — or call Convert.ToString(n, 2).

Frequently Asked Questions

Repeatedly divide by 2 and collect remainders (LSB first), then reverse them — or call Convert.ToString(n, 2) for nonnegative integers.
The first remainder is the least significant bit. Printing from last remainder to first gives the usual left-to-right binary string.
Handle n == 0 separately and return "0". A while (n > 0) loop would otherwise produce an empty string.
It formats the integer n as a base-2 string. It is the idiomatic built-in after you understand the algorithm.
Both methods are O(b), where b is the number of output bits — about O(log n) for positive n.

Next: Decimal to Octal

Convert a base-10 integer into base 8 with divide-by-8 remainders.

Decimal to octal tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

6 people found this page helpful