Skill/C,C#,C++

연산자 우선순위와 비트연산

steadilee 2023. 2. 7. 11:33

연산자

  • 기능이 있는 특수문자
  • 연산자 우선순위 : 최> 단 > 산 > 쉬 > 관 > (논)리 > 삼 > 대 
    • 최우선 연산자
    • 단항연산자
    • 산술연산자
    • 쉬프트 연산자
    • 관계연산자
    • 논리연산자
    • 삼항 연산자
    • 대입연산자
  • 결합성 : 하나의 수식에 동일한 연산자가 있다면, 해당 연산자의 방향에 맞게 결합되어 연산되는 성질
    • ( ex: 3+5+9 ⇒ (3+5) + 9 )

 

 

비트 연산

  • 정보 8개(8비트) = 1 byte
  • 해당 연산자 : 논리연산자, 단항 연산자, 쉬프트 연산자
  • 논리연산자
    • & (AND, 논리곱) : a & b → 2진수 만들어서 각 자리수 곱한 결과와 같음
    • | (OR, 논리합) : a | b → 두 비트 중 하나라도 1이면 1
    • ^ (XOR, 배타논리합) : a ^ b → 두 비트가 같은값이면 0
  • 단항 연산자
    • ~ NOT, 논리부정 : ~a, 1을 0으로, 0을 1로 반대로 바꿔줌
    • 최상위 비트가 1이면 (-), 0이면 (+)
    • 10강. ~10 ⇒ -11 이라는 것을 증명하시오
  • 쉬프트 연산자 : 빈자리는 0으로 채워지고(음수1로) 비트가 넘어가면 잘린다.
    • << 좌쉬프트 : a << b , a를 b만큼 좌로 비트 이동
    • 우쉬프트 : a >> b , a를 b만큼 우로 비트 이동
  • 비트연산의 실제 활용
    • RGB, IP주소