회로계산소

회로 실험과 설계에 자주 쓰는 계산을 한곳에서. 설치 없이 바로 쓰는 전자공학 계산기 모음입니다.

English

값은 단위 접두어와 함께 입력할 수 있습니다. 예: 4.7k 4k7 100n 10u 20mA 1M

0x

진수 변환기 (2진수·8진수·10진수·16진수)

숫자 하나를 넣으면 2진수, 8진수, 10진수, 16진수로 한 번에 바꿔 줍니다. 3진수, 4진수처럼 2~36진수 입력도 됩니다. 2진수는 네 자리씩 끊어서 보여 줍니다.

0x, 0b 같은 접두어와 띄어쓰기는 무시합니다. 음수는 2의 보수 계산기를 쓰세요.

바꾸는 원리

10진수를 2진수로 바꿀 때는 2로 계속 나누고 나머지를 아래에서 위로 읽습니다. 2진수를 16진수로 바꿀 때는 오른쪽부터 네 자리씩 끊어서 각 묶음을 0~F 한 글자로 바꾸면 됩니다(1100 1010 → CA). 8진수는 세 자리씩 끊습니다.

풀이 예제: 4진수 1230를 10진수로

  1. 4진수 1230의 각 자리 값은 오른쪽부터 1, 4, 16, 64입니다.
  2. 1×64 + 2×16 + 3×4 + 0×1 = 108
  3. 위 계산기에서 '4진수'를 고르고 1230를 넣으면 같은 값과 2진수 110 1100가 나옵니다.

풀이 예제: 202를 2진수·16진수·8진수로

  1. 2로 계속 나누고 나머지를 적습니다.202 ÷ 2 = 101 … 0101 ÷ 2 = 50 … 150 ÷ 2 = 25 … 025 ÷ 2 = 12 … 112 ÷ 2 = 6 … 06 ÷ 2 = 3 … 03 ÷ 2 = 1 … 11 ÷ 2 = 0 … 1
  2. 나머지를 아래에서 위로 읽으면 1100 1010
  3. 네 자리씩 끊어 16진수로: 1100 = C, 1010 = A → 0xCA
  4. 세 자리씩 끊으면 8진수: 011 001 010 → 0o312

0~15 진법 변환표

10진수2진수8진수16진수
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

실전에서 쓰는 법

순서대로 쓰기

  1. 가지고 있는 진법 칸에 숫자를 입력합니다. 0x, 0b 같은 접두어도 됩니다.
  2. 다른 진법 값이 한꺼번에 나오고, 2진수는 4자리씩 끊어 보여 줍니다.
  3. 2~36 사이의 다른 진법은 사용자 진법 칸을 씁니다.

자주 하는 실수

  • 레지스터 값의 앞자리 0 생략. 0x0F와 0xF는 같은 수지만, 8비트 레지스터라면 보통 여덟 비트를 모두 0000 1111처럼 적는 편이 좋습니다.
  • 음수를 부호 없는 수로 다루기. −5를 2진수로 바꾸려면 비트 수와 부호 표현 방식이 필요합니다. 2의 보수 계산기를 쓰세요.
  • 10진 소수가 정확히 바뀔 거라 기대하기. 10진수 0.1은 유한한 2진수로 나타낼 수 없습니다. 그래서 부동소수점에서 0.1 + 0.2가 살짝 어긋납니다.

손으로 바꾸는 법

16진수 한 자리는 정확히 4비트라서 16진수와 2진수 변환은 계산이 아니라 표 찾기입니다. 0xA7은 1010 0111입니다. 8진수는 3비트씩 같은 방식으로 묶습니다. 10진수를 2진수로 바꿀 때는 2로 계속 나눈 나머지를 아래에서 위로 읽습니다. 데이터시트는 2진수 뒤에 b(1010b), 16진수 뒤에 h(A7h)를 붙여 쓰기도 합니다.

계산 예: I²C 주소를 세 가지 진법으로

센서 데이터시트에 7비트 I²C 주소가 0x48로 적혀 있습니다. 2진수로는 100 1000, 10진수로는 72입니다. 통신선에서는 주소 뒤에 읽기·쓰기 비트가 붙으므로 첫 바이트는 주소를 한 칸 왼쪽으로 민 값입니다. 쓰기는 1001 0000(0x90), 읽기는 1001 0001(0x91)입니다. 로직 분석기나 라이브러리에 따라 0x90·0x91로 보이기도 하고 0x48로 보이기도 해서, 장치가 엉뚱한 주소에서 "발견되는" 일이 자주 생깁니다.

8진수는 주로 파일 권한에 남아 있습니다. 755는 111 101 101로 나뉘고, 소유자는 읽기·쓰기·실행, 나머지는 읽기·실행이라는 뜻입니다.

2진수 소수

소수는 2를 곱하고 정수 부분을 떼어 내는 일을 반복해서 바꿉니다. 0.625라면 1.25에서 1, 0.5에서 0, 1.0에서 1이 나오고 끝나므로 2진수로 0.101(2분의 1 더하기 8분의 1)입니다. 0.1은 끝나지 않습니다. 0.0001 1001 1001 …이 계속 반복되므로 길이가 정해진 2진 형식에는 조금 틀린 값으로 저장됩니다. ADC나 DSP 코드의 고정소수점 형식은 1카운트 = 0.0625처럼 2의 −4제곱으로 딱 떨어지는 배율을 골라 이런 문제를 피합니다.

자주 묻는 질문

2진수를 16진수로 빠르게 바꾸는 방법은?

오른쪽부터 네 자리씩 끊고 각 묶음을 16진수 한 글자로 바꾸면 됩니다. 1100 1010은 CA입니다. 맨 왼쪽 묶음이 네 자리가 안 되면 앞에 0을 채웁니다.

16진수는 왜 쓰나요?

16진수 한 자리가 정확히 2진수 네 자리라서, 1바이트는 항상 16진수 두 자리가 됩니다. 11001010보다 0xCA가 훨씬 읽기 쉬우면서도 비트와 바로 대응됩니다.