ABOUT ME

리눅스, 네트워크 관련 질문 댓글로 남기시면 아는 한도 안에서 대답해드립니다.

Today
Yesterday
Total
  • 산술, 관계, 비트 연산자,논리, 대입, 조건 연산자
    C언어 2022. 3. 8. 23:28
    728x90
    반응형

    산술 연산자

    산술 연산자는 평소 많이 봤을 기호들이다.

    연산자 의미
    + 덧셈
    - 뺄셈
    * 곱셈
    / 나눗셈
    % 나머지
    ++ 증가 연산자
    -- 감소 연산자

    거듭제곱은 연산자가 없다.

    하지만 math.h 라이브러리의 pow 를 이용하여 거듭제곱을 표현할수가 있다.

    루트는 sqrt 이다.

     

    전치:

    변수 앞에 연산자를 사용할경우, 변수의 값을 증감시킨 후 해당 변수를 연산에 사용한다.

    ex) ++x, --x

    b = 1

    a = (++b) +2

    b의 값을 먼저 증가시킨뒤, 연산을 하면된다.

    b + 1 는 2 가 되므로 b는 2가 되고, 연산을 하게된다면 2+2 = 4  즉 a는 4가 된다.

    a = 4, b = 2

     

    후치:

    변수 뒤에 연산자를 사용할경우, 변수를 연산에서 사용한뒤, 변수의 값을 증감시킨다.

    ex) x++, x--

    b = 1

    a = (b++) + 2

    b의 값인 1을 + 2 연산을 한뒤 값을 a에 저장을 한다.

    그리고 b의 값을 증가한다.

    a = 3, b = 2가 된다.

     

     

    관계 연산자

    두 개의 수를 비교하여, 참(true) 거짓(false)으로 나타낸다.

    참은 1, 거짓은 0으로 사용된다.

    c프로그램에서는 0외의 숫자가 참으로 간주된다.

    연산자 의미
    == 같다
    != 같지 않다
    > 크다
    >= 크거나 같다
    < 작다
    <= 작거나 같다

    c언어에서는 같다라는 의미가 = 가 아닌 == 이다.

    = 는 단순히 대입을 하는것뿐이다.

    즉 a = 1의 의미는 a가 1인것이 아니라 a라는 변수에 1의 값을 집어 넣은것이다.

     

    비트 연산자

    컴퓨터가 사용하는 숫자인 0과 1으로 연산하는 것을 의미한다.

    연산자 의미(논리)  
    & and 비트가 모두 1이면 1
    | or 비트중 한개라도 1이면 1
    ^ xor 같으면 0 다르면 1
    ~ not 0 이면 1, 1이면 0
    << lleft shift 비트를 왼쪽으로 이동
    >> right shift 비트를 오른쪽으로 이동

    ex)

    int a = 13, b = 21, c , d, e, f;

    ## 이진법으로 나타내자면 a = 1101, b = 10101이 된다.

    c = a & b;

    ## &는 and 연산자이므로, c는 101, 5가 된다.

    d = a | b;

    ## |는 or 연산자 이므로, d는 11101, 29가 된다.

    e = a ^ b

    ## ^는 xor 연산자 이므로 e는 11000, 24가 된다.

    f = ~ a; 

    ## ~는 not 연산자 이므로 f는 10, 2가 된다.

    a = a << 2;

    ## <<는 뒤에 나오는 숫자만큼 왼쪽으로 민다. 즉 a = 1101이므로 2칸 밀어서 110100, 52가 된다.

    b = b >> 3;

    ## >> 는 뒤에 나오는 숫자만큼 오른쪽으로 민다. 즉 b = 10101이므로 3칸 밀어서 10, 2가 된다.

     

    논리 연산자

    논리 연산자는 2개의 논리 값을 연산하여 참과 거짓으로 나타낸다.

    거짓은 0, 참은 1이다.

    연산자 의미
    !(not) 반대
    ||(or) 하나라도 참이면 참
    &&(and) 모두 참이면 참

    대입 연산자

    대입연산자는 연산 후 대입하는것이다.

    연산자 의미
    = 대입

    조건 연산자

    조건 연산자는 피 연산자가 3개이기 때문에 삼항 연산자라고도 불린다.

    그리고 조건에 따라 서로 다른 수식을 처리한다.

    #include <stdio.h>
    main()
    {
    int a = 5, b = 10, c, d;
    c = a == b ? a : b;
    d = a != b ? a + b : a * b;
    }
     
    이렇게 한다면
    c 값은 a 와 b 값이 같을경우 a 값을 c 에 대입하고 아니라면 b 값을 대입한다.
    즉 c는 b의 값인 10이 된다.
     
    d 값은 a와 b가 같지 않을 경우, a+b 값을 넣고 아니라면 a * b 값을 넣는다.
    즉 같지 않으모 a+b 값인 d는 15가 된다.
     
     

     

     

    728x90
    반응형

    댓글

Designed by Tistory.