2진법(binary system)은 0과 1이라는 두 개의 숫자만을 사용하여 수를 나타내는 기수법이다. 이는 10진법과 달리 자릿값이 올라갈 때마다 2의 거듭제곱을 기초로 계산한다. 근대적 의미의 2진법은 17세기 독일의 수학자 고트프리트 빌헬름 라이프니츠에 의해 체계화되었으며, 그는 0과 1이라는 두 숫자가 만물의 존재와 비존재를 상징한다고 보았다. 오늘날 2진법은 모든 디지털 컴퓨터의 데이터 처리와 저장에 사용되는 가장 기본적인 수 체계로 자리 잡고 있다.
2진법에서 각 자릿수는 오른쪽에서 왼쪽으로 갈수록 2의 0승, 2의 1승, 2의 2승 순으로 커지는 가중치를 가진다. 예를 들어 10진수 5는 2진수로 '101'로 표기되는데, 이는 (1 × 2²) + (0 × 2¹) + (1 × 2⁰)의 합과 같다. 10진법에 비해 숫자의 길이가 급격히 길어진다는 단점이 있으나, 상태를 단 두 가지로만 구분하면 되므로 연산의 규칙이 매우 단순하고 논리적인 회로를 설계하기에 용이하다는 특징이 있다.
컴퓨터 내부의 전자 회로는 전압이 높은 상태(High)와 낮은 상태(Low), 또는 스위치의 온(On)과 오프(Off) 상태를 통해 정보를 식별한다. 2진법은 이러한 물리적 신호의 이분법적 특성과 완벽하게 대응하기 때문에 하드웨어 구현에 최적화되어 있다. 정보의 최소 단위인 비트(bit)는 'binary digit'의 약자로, 0 또는 1 중 하나의 값을 저장하며, 이러한 비트 8개가 모여 현대 컴퓨팅의 기본 처리 단위인 바이트(byte)를 형성한다.
2진법은 불 대수(Boolean algebra)와 결합하여 복잡한 논리 연산의 기초가 된다. AND, OR, NOT과 같은 논리 게이트는 2진법 수치를 입력받아 특정 연산을 수행하며, 이는 CPU 내의 연산 장치에서 수치 계산과 제어 흐름을 가능하게 하는 핵심 원리가 된다. 또한 2진법은 데이터 전송 시 발생할 수 있는 오류를 검출하고 수정하는 과정에서도 단순한 구조 덕분에 매우 효율적인 알고리즘을 제공한다.
인간이 2진법의 긴 숫자 나열을 직접 읽고 처리하는 데에는 한계가 있기 때문에, 컴퓨터 과학에서는 이를 보완하기 위해 8진법이나 16진법을 함께 사용하기도 한다. 특히 16진법은 2진법 4자리를 단 한 글자로 압축하여 표현할 수 있어 메모리 주소나 색상 코드 표기 등에서 널리 쓰인다. 그럼에도 불구하고 디지털 기기의 가장 깊은 곳에서 이루어지는 모든 연산은 결국 2진법의 논리 체계를 따르며, 이는 현대 정보화 사회를 지탱하는 기술적 근간이라 할 수 있다.