비트 연산 계산기
두 정수에 대한 AND·OR·XOR·NOT·시프트 연산을 2진수·16진수·부호 없는/있는 10진수로 한눈에. 8·16·32·64비트 폭 선택.
10진수, 0x 16진수, 0b 2진수, 0o 8진수 입력 가능(음수 허용).
| 식 | 2진수 | 16진수 | 10진수 | 부호 있음 |
|---|---|---|---|---|
| A | 0000 1100 | 0x0C | 12 | 12 |
| B | 0000 1010 | 0x0A | 10 | 10 |
| A & B | 0000 1000 | 0x08 | 8 | 8 |
| A | B | 0000 1110 | 0x0E | 14 | 14 |
| A ^ B | 0000 0110 | 0x06 | 6 | 6 |
| ~A | 1111 0011 | 0xF3 | 243 | -13 |
| ~B | 1111 0101 | 0xF5 | 245 | -11 |
| A << 1 | 0001 1000 | 0x18 | 24 | 24 |
| A >> 1 | 0000 0110 | 0x06 | 6 | 6 |
사용법
- A와 B에 두 정수를 입력합니다(10진수 또는 0x / 0b / 0o 접두어).
- 비트 폭과 시프트 양을 고릅니다.
- 각 연산을 2진수·16진수·부호 없는/있는 열에서 확인합니다.
자세한 설명
펼치기접기
두 정수를 입력하면 자주 쓰는 비트 연산을 한 번에 보여줍니다: AND, OR, XOR, NOT(~A, ~B), 그리고 임의 자릿수의 좌/우 시프트입니다. 각 결과는 2진수(니블 단위로 묶음), 16진수, 부호 없는 10진수, 2의 보수 부호 있는 10진수로 표시됩니다. 8·16·32·64비트 폭을 고르면 결과가 그 크기로 래핑되어, NOT과 시프트가 C·Rust나 레지스터에서와 똑같이 동작합니다. 입력은 10진수, 0x 16진수, 0b 2진수, 0o 8진수를 받으며 음수는 2의 보수로 해석됩니다. 임의 정밀도 정수로 계산해 64비트 값도 정확합니다. 임베디드 작업, 비트 플래그·마스크, 프로토콜 디코딩, 비트 연산 학습에 유용합니다.
자주 묻는 질문
음수는 어떻게 처리되나요?
선택한 폭의 2의 보수로 해석됩니다. 예를 들어 −1은 모두 1(8비트에서 0xFF)이 됩니다. 부호 있는 열은 모든 결과의 2의 보수 값을 보여줍니다.
비트 폭은 무엇을 바꾸나요?
결과를 그 비트 수로 마스킹하며, 이는 NOT과 시프트에서 중요합니다. ~12는 8비트에서 0xF3, 32비트에서 0xFFFFFFF3 입니다 — C의 고정 크기 정수나 CPU 레지스터와 같습니다.
16진수나 2진수도 입력되나요?
네 — 16진수는 0x(0xFF), 2진수는 0b(0b1010), 8진수는 0o 접두어를 쓰면 됩니다. 일반 10진수도 됩니다.
64비트 결과도 정확한가요?
네. 내부적으로 임의 정밀도 정수를 사용하므로, 32비트 JavaScript 비트 연산자와 달리 64비트 연산에서 정밀도를 잃지 않습니다.
오른쪽 시프트는 산술인가요, 논리인가요?
논리 시프트입니다. 부호 없는 비트 패턴을 밀기 때문에 왼쪽에서 0이 들어오고 부호 비트는 보존되지 않습니다. 8비트에서 A = −1은 0xFF이고 A >> 1은 0x7F, 십진수로 127이며 −1이 아닙니다. 이는 자바스크립트의 >>>, 자바의 >>>와 같고 각 언어의 >>와는 다릅니다. C가 부호 있는 정수에 해 주는 산술 시프트가 필요하다면 절댓값을 밀고 부호를 다시 붙이거나, 부호 있는 열을 그 점을 감안해 읽으세요.
왼쪽 시프트 결과가 자바스크립트 콘솔과 다른 이유는?
자바스크립트의 <<는 값과 무관하게 피연산자를 항상 32비트로 자르기 때문입니다. 그래서 1 << 40은 256이 됩니다. 40이 8로 감기는 것이죠. 여기서는 임의 정밀도 정수로 시프트한 다음 선택한 폭으로 마스킹하므로, 64비트에서 1 << 40은 1099511627776이고 이는 C가 uint64_t에 대해 주는 값과 같습니다. 폭 이상으로 시프트하는 것은 여기서 0을 내도록 정의되어 있는데, C에서는 그것이 미정의 동작입니다. 시프트 입력값은 0~64로 제한됩니다.
관련 도구
2의 보수 변환기 (8–64비트)
십진·hex·이진·8진 값을 입력해 8/16/32/64비트 2의 보수 비트 패턴과 부호 있는/없는 해석, hex, 8진, 1의 보수를 확인 — 브라우저에서.
변환
ASCII 코드 표
256행 ASCII / 확장 ASCII 표 — 10진·16진·8진·2진 + 제어 문자 이름. 검색·복사.
개발
진법 변환기
2진수·8진수·10진수·16진수 사이로 숫자를 변환하세요.
변환
바이트 크기 변환 (KB / KiB / MB / MiB / ...)
십진(KB·MB·GB — SI 기수 1000)과 이진(KiB·MiB·GiB — IEC 기수 1024) 바이트 단위 + 비트 변환.
변환
그레이 코드 변환기
10진수·2진수·반사 2진 그레이 코드 간 양방향 변환, 선택적 고정 비트 폭과 0-7 참조표 제공.
변환
BCD 변환기 (2진화 10진수)
10진수 ↔ 8421 2진화 10진수 변환 — 자릿수별 4비트 니블, 패킹 BCD 16진 바이트, BCD 유효성 검사.
변환