UnitConv
비트 연산

비트 연산 계산기

32비트 정수의 AND, OR, XOR, NOT, 비트 시프트를 비트 단위 시각화와 함께 계산

피연산자

피연산자 A
피연산자 B

연산

결과

12 & 10
10진수8
부호 없음8
16진수0x00000008
2진수00000000000000000000000000001000

결과의 32비트 패턴

0
31
0
30
0
29
0
28
0
27
0
26
0
25
0
24
0
23
0
22
0
21
0
20
0
19
0
18
0
17
0
16
0
15
0
14
0
13
0
12
0
11
0
10
0
9
0
8
0
7
0
6
0
5
0
4
1
3
0
2
0
1
0
0
MSB (bit 31)LSB (bit 0)

값은 32비트 정수로 처리됩니다. 부호 있는 10진수는 최상위 비트를 부호로 해석하는 2의 보수 표현이며, 부호 없는 10진수는 32비트 전체를 양의 크기로 읽습니다. 오른쪽 시프트는 논리 시프트로 왼쪽에서 0이 채워집니다.

이 도구 소개

비트 연산 계산기는 개발자와 컴퓨터 과학 전공 학생이 두 정수에 대해 AND, OR, XOR, NOT, 좌우 비트 시프트를 계산할 수 있는 도구입니다. 각 피연산자를 2진수, 10진수, 16진수 중 하나로 입력하면 결과가 세 진법으로 동시에 표시되며, 실시간 32비트 맵으로 어떤 비트가 바뀌는지 정확히 볼 수 있습니다. 플래그와 비트마스크 디버깅, 권한 처리, 데이터 패킹, 그리고 컴퓨터가 최하위 수준에서 비트를 어떻게 다루는지 학습하는 데 적합합니다.

사용 방법

  1. 1 피연산자 A를 입력하고 진법(2진수, 10진수, 16진수)을 선택합니다.
  2. 2 연산을 선택합니다: AND, OR, XOR, 좌우 시프트 또는 단항 NOT.
  3. 3 두 피연산자 연산은 피연산자 B를, 시프트는 시프트할 비트 수를 입력합니다.
  4. 4 결과를 10진수, 부호 없음, 16진수, 2진수로 읽고 강조된 비트를 확인합니다.

작동 원리

비트 연산은 32개의 비트를 각각 독립적으로 처리합니다. AND는 두 입력 비트가 모두 1일 때만 결과 비트를 1로 만들기 때문에 선택한 비트만 남기는 마스킹에 사용됩니다. OR은 입력 비트 중 하나라도 1이면 1로 만들기 때문에 플래그를 켜는 데 사용됩니다. XOR은 두 입력 비트가 다를 때만 1로 만들어 비트 토글과 간단한 체크섬에 적합합니다. NOT은 단항 연산으로 모든 비트를 반전해 0을 1로, 1을 0으로 바꿉니다. 왼쪽 시프트(<<)는 모든 비트를 최상위 쪽으로 옮기고 빈자리를 0으로 채워 한 자리마다 2배가 됩니다. 논리 오른쪽 시프트(>>)는 반대 방향으로 옮기며 0으로 채웁니다. 음수는 2의 보수로 저장되므로 같은 32비트를 부호 있는 값(최상위 비트가 부호)으로도, 부호 없는 값으로도 읽을 수 있어 이 도구는 둘 다 표시합니다. 예를 들어 12 AND 10 = 8, 12 OR 10 = 14, 12 XOR 10 = 6, 1 << 4 = 16이며, NOT 0은 모든 비트가 1이 되어 부호 있으면 -1, 부호 없으면 4294967295입니다.

자주 묻는 질문

AND, OR, XOR의 차이는 무엇인가요?

AND는 두 피연산자 모두에서 켜진 비트만 남기므로 마스크로 비트를 지우거나 검사하는 데 사용합니다. OR은 피연산자 중 하나라도 켜져 있으면 비트를 켜므로 비트를 설정하는 데 사용합니다. XOR은 정확히 한쪽에서만 켜져 있을 때 비트를 켜므로 비트를 토글하고 차이를 감지합니다.

왜 NOT 0이 -1이면서 4294967295인가요?

NOT은 32비트를 모두 반전하므로 0은 서른두 개의 1이 됩니다. 이 패턴을 부호 있는 2의 보수 정수로 읽으면 -1이고, 부호 없는 32비트 정수로 읽으면 4294967295입니다. 둘 다 같은 비트를 나타냅니다.

왼쪽 또는 오른쪽 시프트는 실제로 무엇을 하나요?

n만큼 왼쪽 시프트는 모든 비트를 최상위 쪽으로 n자리 옮기고 0으로 채워 2의 n제곱을 곱합니다. n만큼 논리 오른쪽 시프트는 반대 방향으로 옮기고 0으로 채워 음수가 아닌 값은 2의 n제곱으로 나눕니다.

왜 모든 것이 32비트로 제한되나요?

JavaScript의 비트 연산자와 대부분의 CPU 정수 레지스터는 32비트 워드로 동작하므로 이 도구도 이를 따릅니다. 시프트 양은 32로 나눈 나머지를 사용하며 값은 32비트 범위 안에서 순환합니다. 이는 C, Java, JavaScript와 동일한 동작입니다.

관련 도구 및 활용

하나의 값을 2진수, 8진수, 10진수, 16진수로 상호 변환하려면 진법 변환기를 사용하세요. 문자 코드는 ASCII 변환기, 색상 마스크는 컬러 코드 변환기를 이용하세요.