개발자 계산기
브라우저 안에서 2진수·8진수·10진수·16진수를 변환하고 고정 폭 비트 연산을 수행합니다. 64비트 값도 정확합니다.
변환 결과
| 16진수 | |
|---|---|
| 10진수 (부호 없음) | |
| 10진수 (부호 있음) | |
| 8진수 | |
| 2진수 |
비트 연산
| 결과 · 16진수 | |
|---|---|
| 결과 · 10진수 (부호 없음) | |
| 결과 · 2진수 |
진법 변환과 비트 연산하는 법
- 값을 입력하고 입력 진법(2진수, 8진수, 10진수, 16진수)을 고르세요.
- 비트 폭(8, 16, 32, 64)을 정하세요. 2진수·16진수의 자리 채움, 부호 있는 값의 해석, 오버플로가 났을 때의 순환 방식이 여기에 따라 정해집니다.
- 그 하나의 값을 변환한 결과, 즉 16진수, 부호 없는·부호 있는 10진수, 8진수, 2진수를 한 번에 확인하세요.
- 비트 연산은 피연산자 B를 넣고 연산(AND, OR, XOR, NAND, NOR, XNOR, 시프트, NOT A)을 고르면 결과가 모든 진법으로 표시됩니다.
이럴 때 씁니다
저수준 작업에 잘 맞습니다. 16진수 레지스터 덤프를 읽거나, 비트마스크를 확인하거나, 플래그·색 값을 진법 사이에서 변환할 때 도구를 바꿀 필요가 없습니다. 부호 없는 열과 부호 있는 열이 같은 비트의 두 해석을 나란히 보여 주어, 8비트에서 0xFF가 255이자 동시에 -1임을 확인할 수 있습니다.
대상이 C의 int나 하드웨어 레지스터라면 고정 폭 동작이 중요합니다. 폭을 맞춰 두면 결과가 실제 타입과 똑같이 순환합니다. 코드에 적어 넣기 전에 시프트 양이나 마스크 값을 계산해 보기에 빠릅니다.
자주 묻는 질문
입력한 값이 어딘가로 전송되나요?
아니요. 진법 변환과 비트 연산은 모두 브라우저 안에서 실행됩니다. 방문 간에 기억하는 것은 선택한 진법·비트 폭·연산뿐이며, 입력한 값은 저장하지 않습니다.
64비트 값도 정확하게 계산되나요?
네. 부동소수점 숫자 대신 BigInt로 계산하므로 64비트 피연산자도 정확합니다. 일반 JavaScript 숫자는 2^53을 넘으면 정밀도를 잃지만 여기에는 해당하지 않습니다.
어떤 입력 형식을 받아 주나요?
선택한 진법(2·8·10·16진수)에 맞는 숫자를 받으며, 관례적인 0b/0o/0x 접두사, 자릿수 구분용 밑줄(_), 앞뒤 공백도 허용합니다.
부호 있는 값은 어떻게 계산되나요?
같은 비트를 선택한 비트 폭에서 2의 보수로 읽은 값입니다. 예를 들어 8비트에서 0xFF는 부호 없는 255, 부호 있는 -1로 표시됩니다. 비트는 같고 해석만 다릅니다.
결과가 비트 폭을 넘으면 어떻게 되나요?
결과는 항상 선택한 비트 폭으로 마스킹되므로, C의 고정 폭 정수처럼 순환(wrap-around)합니다. 오른쪽 시프트는 논리(부호 없는) 시프트입니다.