본문 바로가기

Programming

C언어 - 비트연산자 / 연산자

먼저 비트연산부터 알아보자.

 

처리속도 : 비트연산 > 일반연산

 

종류

1. 논리 연산자

2. shift(시프트) 연산자

 

위 표 하나로 종결한다.

 

추가로 ~ (NOT)의 연산의 경우 *부호비트가 반전된다.

 

(부호비트란? : signed 자료형의 경우, 맨~ 왼쪽에 첫번째 비트 하나를 음수(-)인지 정수인지 판단하는 비트가 존재한다.)

#include <stdio.h>

int main()
{
    int num = 0;
    printf("typing num : ");
    scanf("%d", &num);
    
    printf("%d", ~num);

    return 0;
}
더보기
더보기

## 결과 값 1 ##

typing num : -2                                                                         

1

 

## 결과 값 2 ##

typing num : 1                                                                  

-2

 

연산자는 다음과 같다.

 

쓰다보니 귀찮아져서 대충 다 때려박았다.

 

대입 연산자 =
산술 연산자 +, -, *, /, %, ++, --
관계 연산자 <, >, <=, >=, ==, !=
논리 연산자 &&, ||, !
할당 연산자 +=, -=, *=, /=, %=
삼항 연산자 ?

 

사실 삼항연산자 말고는 설명하고 말것도 없다.

(삼항 연산자는 딱 봤을때 뭔지 유추하기 어렵고, 다른 언어에서도 많이 쓴다. 그러니 숙지해두자)

 

대입 연산자는 값을 a = 1; 하면 a에 1값이 들어간다는 거고

 

산술 연잔사는 * 곱하기, / 나누기, % 나머지 구하기,

++는 1증가, -- 1감소이다.

(++a 와 같이 앞에 있으면 해당 줄을 읽을때 제일 먼저 실행, a++ 처럼 있으면 줄을 다 읽고 마지막에 실행이니 참고)

 

&& (AND) 는 (1==1 && 1==1) => 참

이런식으로 양쪽 모두 참 판단,

 

|| (OR) 는 (1==1 || 1==0) => 참

한쪽만 참이어도 참

 

! (NOT) 은 (!1==0) => 참

참 거짓 반전

삼항 연산자는

A = B ? 10 : 20

B가 참이면 A에 10을 할당, 거짓이면 A에 20을 할당