2의 보수 계산기 이진수와 십진수 변환, 부호 있는 수 및 보수 계산 지원

변환 결과

2의 보수 계산기 기능 소개

이진수와 십진수를 자유롭게 변환하고, 1의 보수·2의 보수를 즉시 계산할 수 있는 무료 온라인 도구입니다. 양수와 음수를 모두 지원하며, 보수 입력으로 원래 이진수를 역산하는 기능도 제공합니다. 컴퓨터 구조, 디지털 시스템, 저수준 프로그래밍에 꼭 필요한 계산기입니다.

주요 기능 목록

  • 십진수 → 이진수 변환: 양수·음수 부호 있는 정수 완벽 지원
  • 이진수 → 십진수 변환: 부호 있는 수 및 부호 없는 수 모두 처리
  • 1의 보수 계산: 비트 전체 반전(0↔1)
  • 2의 보수 계산: 1의 보수 + 1, 현대 컴퓨터 표준 음수 표현
  • 보수 역산: 보수를 입력하면 원래 이진수 자동 복원
  • 비트 길이 선택: 8비트, 16비트, 32비트, 64비트 지원

활용 사례 — 이런 분들께 꼭 필요합니다

  • 컴퓨터 공학 전공생: 컴퓨터 구조 수업에서 보수 표현 방식 학습 및 과제 검증
  • 임베디드/시스템 프로그래머: C/C++ 코드에서 int, short, long 타입의 비트 연산 디버깅
  • Java·Python 개발자: 정수형 비트 마스크, 시프트 연산 결과 확인
  • 디지털 회로 설계자: ALU 가산기 입출력 값 시뮬레이션 및 검증
  • 자격증 준비생: 정보처리기사, 전자기사 시험의 보수 관련 문제 학습

사용 방법 (단계별 가이드)

  1. 변환 방향 선택: '십진수→이진수' 또는 '이진수→십진수' 탭 선택
  2. 숫자 입력: 변환할 숫자를 입력란에 입력 (음수는 마이너스 부호 포함)
  3. 비트 수 지정: 8·16·32·64 중 원하는 비트 길이 선택 (이진수 변환 시)
  4. 결과 확인: 이진수, 1의 보수, 2의 보수가 즉시 표시됨
  5. 복사 활용: '클립보드에 복사' 버튼으로 결과를 바로 코드에 붙여넣기

보수란 무엇인가?

컴퓨터 과학에서 보수(complement)는 음수를 이진수로 표현하는 방법입니다. 현대 모든 컴퓨터는 2의 보수 방식을 사용합니다.

1의 보수: 모든 비트를 반전합니다 (0→1, 1→0). 예: 0000101011110101

2의 보수: 1의 보수에 1을 더합니다. 예: 11110101 + 1 = 11110110 (이것이 -10의 표현)

2의 보수를 사용하면 덧셈과 뺄셈에 동일한 하드웨어 회로를 사용할 수 있어 CPU 설계가 크게 단순해집니다. 자세한 내용은 Two's complement — Wikipedia를 참조하세요.

활용 팁

  • 음수 십진수를 이진수로 변환하려면 그냥 음수 값(-10 등)을 입력하면 자동으로 2의 보수 형태로 변환됩니다.
  • 비트 오버플로우가 발생하면 경고 메시지가 표시됩니다. 더 큰 비트 수를 선택하세요.
  • 8비트 범위: -128 ~ +127 / 16비트: -32768 ~ +32767 / 32비트: -2,147,483,648 ~ +2,147,483,647
  • 프로그래밍에서 ~x 연산자(C, Java, Python)는 1의 보수를 계산합니다.

자주 묻는 질문 (FAQ)

  • Q: 이 도구는 무료인가요?
    A: 네, 완전히 무료이며 회원가입도 필요 없습니다. 브라우저에서 바로 사용하세요.
  • Q: 음수 이진수를 십진수로 변환하려면 어떻게 하나요?
    A: '이진수→십진수' 탭에서 이진수를 입력하고 비트 수를 선택하면 1의 보수·2의 보수 해석 결과가 모두 표시됩니다.
  • Q: 64비트보다 큰 수는 지원하나요?
    A: 현재는 최대 64비트까지 지원합니다. 더 큰 수는 언어 라이브러리(예: Java의 BigInteger)를 사용하세요.
  • Q: 2의 보수와 부호 절댓값(Sign-Magnitude) 방식의 차이는?
    A: 부호 절댓값은 최상위 비트만 부호로 사용하고, 2의 보수는 전체 비트를 활용합니다. 현대 CPU는 모두 2의 보수를 사용하므로 실무에서는 2의 보수만 알면 됩니다.
  • Q: Python에서 2의 보수를 계산하는 방법은?
    A: (~x) & 0xFF (8비트 기준)처럼 비트마스크를 사용합니다. 이 도구로 결과를 먼저 확인한 후 코드에 적용하면 편리합니다.

다양한 프로그래밍 언어에서 10진수를 2진수로 변환하는 방법

JavaInteger.toBinaryString(decimal_number)
JavaScriptlet binary = decimal_number.toString(2);
Microsoft .NET / C#string binary = Convert.ToString(decimal_number, 2);
Pythonbinary = bin(decimal_number)[2:]
Rubybinary = decimal_number.to_s(2)
Go import strconv
binary := strconv.FormatInt(decimal_number, 2)