# 진법 변환기

2진수·8진수·10진수·16진수와 2~36의 모든 진법 사이에서 숫자를 변환합니다. 큰 수, 2의 보수, 비트 보기 지원.

https://codeknife.dev/ko/jinbeop-byeonhwan/

## 할 수 있는 일

숫자를 2진수·8진수·10진수·16진수와 2~36의 모든 진법 사이에서 변환합니다. 긴 수의 모든 자리를 유지하고, 8·16·32·64비트의 2의 보수 패턴을 보여 주며, 비트를 하나씩 뒤집을 수 있습니다.

## 사용 방법

1. 입력란이나 아무 행에 숫자를 입력하거나 붙여넣습니다.
2. **입력 진법**, 2~36의 **사용자 진법**, **비트 너비**를 고릅니다.
3. 다른 행을 읽고, 비트를 눌러 뒤집고, 결과를 복사합니다.

## 예시

`255`는 2진수로 `1111 1111`, 8진수로 `377`, 16진수로 `FF`입니다.

8비트의 `-1`은 2의 보수로 `1111 1111`이며, `FF`를 8비트 부호 있는 수로 읽으면 다시 `-1`이 됩니다.

## 알아 두면 좋은 점

- 접두사 `0b`·`0o`·`0x`와 자릿수 사이의 밑줄, 공백을 쓸 수 있습니다.
- 숫자는 64비트나 2^53으로 제한되지 않습니다. 비트 보기는 값이 선택한 너비에 들어갈 때만 나타납니다.
- **입력을 2의 보수 패턴으로 읽기**를 켜면 `FF`를 255 대신 `-1`로 읽습니다.

## 2진수에서 음수는 어떻게 나타내나요?

컴퓨터는 음수를 2의 보수로 저장합니다. 모든 비트를 뒤집고 1을 더합니다. 8비트에서 -1은 1111 1111, -128은 1000 0000입니다. 같은 패턴도 부호 없이 읽으면 255나 128이므로 너비와 부호가 중요합니다.

## 자주 묻는 질문

### 왜 2^53보다 큰 수도 처리하나요?

많은 변환기는 부동소수점 수를 써서 9,007,199,254,740,992를 넘으면 자릿수를 잃습니다. 이 도구는 임의 정밀도 정수를 사용하므로 긴 수의 모든 자리가 유지됩니다.

### 0x, 0b, 0o 접두사는 무엇인가요?

소스 코드에서 진법을 나타내는 표시입니다. 0x는 16진수, 0b는 2진수, 0o는 8진수입니다. 입력해도 생략해도 됩니다. 자릿수 사이의 밑줄과 공백은 무시됩니다.

### 이 도구가 숫자를 어딘가로 전송하나요?

아니요. 모든 처리는 브라우저에서 이루어지며, 입력한 내용은 서버로 전송되지 않습니다.