비트연산자

2024. 9. 3. 12:57·CS
목차
  1. AND 연산자 (&)
  2. OR 연산자 (|)
  3. XOR 연산자 (^)
  4. NOT 연산자 (~)
  5. 왼쪽 시프트 연산자 (<<)
  6. 오른쪽 시프트 연산자 (>>)
  7. 부호 없는 오른쪽 시프트 연산자 (>>>)
  8. 요약

이미지 출처 :https://velog.io/@foeverna/Java-%EC%97%B0%EC%82%B0%EC%9E%90-%EA%B4%80%EA%B3%84-%EB%85%BC%EB%A6%AC-%EC%A1%B0%EA%B1%B4-%EB%B9%84%ED%8A%B8-%EC%97%B0%EC%82%B0%EC%9E%90


위의 이미지로 모든 설명이 다 되긴한다.

과거 디지털 공학 수업을 청강 하였을 때 공부한 적이 있었다. 회로에 관한 개념이었는데 Software에서 보다니 새삼 감회가 새로웠다. 

AND 연산자 (&)

  • 두 비트가 모두 1일 때만 1을 반환한다.
  • 예: 5 & 3 → 1

OR 연산자 (|)

  • 두 비트 중 하나라도 1이면 1을 반환한다.
  • 예: 5 | 3 → 7

XOR 연산자 (^)

  • 두 비트가 서로 다를 때 1을 반환한다.
  • 예: 5 ^ 3 → 6

NOT 연산자 (~)

  • 단항 연산자로, 비트를 반전시킨다. 1을 0으로, 0을 1로 만든다.
  • 예: ~5 → -6 (2의 보수 표기법으로 인해 반전된 결과가 음수로 나온다.)

왼쪽 시프트 연산자 (<<)

  • 비트를 왼쪽으로 이동시키며, 오른쪽 빈 공간에 0을 채운다. 이동할 때마다 값이 2배가 된다.
  • 예: 5 << 1 → 10 (2진수로 0101 → 1010)

오른쪽 시프트 연산자 (>>)

  • 비트를 오른쪽으로 이동시키며, 왼쪽 빈 공간은 부호 비트(가장 왼쪽 비트)로 채운다. 음수인 경우에는 1, 양수인 경우에는 0으로 채운다.
  • 예: 5 >> 1 → 2 (2진수로 0101 → 0010)
  • 음수 예: -5 >> 1 → -3

부호 없는 오른쪽 시프트 연산자 (>>>)

  • 비트를 오른쪽으로 이동시키며, 빈 공간은 항상 0으로 채웁니다. 부호와 상관없이 모든 비트가 오른쪽으로 이동
  • 예: 5 >>> 1 → 2
  • 예: -5 >>> 1 → 큰 양수 값이 나옴 (음수의 이진수를 0으로 채우기 때문에)

요약

  • AND (&): 둘 다 1일 때만 1
  • OR (|): 둘 중 하나라도 1이면 1
  • XOR (^): 다를 때 1
  • NOT (~): 비트 반전
  • 왼쪽 시프트 (<<): 비트를 왼쪽으로 이동, 값이 2배씩 증가
  • 오른쪽 시프트 (>>): 부호를 유지하면서 비트를 오른쪽으로 이동
  • 부호 없는 오른쪽 시프트 (>>>): 항상 0을 채우며 비트를 오른쪽으로 이동

'CS' 카테고리의 다른 글

DNS와 그 작동원리  (1) 2024.09.27
인터넷의 작동 원리  (2) 2024.09.27
자바 버전별 차이 (LTS)  (0) 2024.06.18
MySql과 MariaDB의 차이  (0) 2024.06.17
온프레미스 & 클라우드 네이티브 아키텍쳐  (1) 2024.06.09
  1. AND 연산자 (&)
  2. OR 연산자 (|)
  3. XOR 연산자 (^)
  4. NOT 연산자 (~)
  5. 왼쪽 시프트 연산자 (<<)
  6. 오른쪽 시프트 연산자 (>>)
  7. 부호 없는 오른쪽 시프트 연산자 (>>>)
  8. 요약
'CS' 카테고리의 다른 글
  • DNS와 그 작동원리
  • 인터넷의 작동 원리
  • 자바 버전별 차이 (LTS)
  • MySql과 MariaDB의 차이
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (326)
      • Algorithm & Data Structures (246)
        • BOJ (104)
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (27)
        • SQL (21)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    다익스트라
    Stack
    투포인터
    동적계획법
    후위순회
    전위순회
    스택
    PriorityQueue
    유니온파인드
    프로그래머스
    BFS
    Java
    Dijkstra
    baekjoon
    dfs
    골드
    dp
    알고리즘
    programmers
    구현
    백트래킹
    DynamicProgramming
    binarySearch
    SQL
    Union-Find
    백준
    경로압축
    unionfind
    algorithm
    이분탐색
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
비트연산자
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.