Rust 입문

[Rust] 연산자

바로크냥 2022. 9. 27. 00:55

5. 연산자

1) 산술 연산

+    더하기

-     빼기

*     곱하기

/     니누기

%     나머지

 

2) 논리 연산

&&     and

||     or

!      not

 

3) 비교 연산 

(좌변이 우변 보다)

>     크다

<     작다

>=    크거나 같다

<=    작거나 같다

==    같다

!=    다르다

 

4) 비트 연산

&        and, 논리곱

|        or, 논리합

^        xor, 배타적 논리합

!        not, 부정 

 

연산자는  다른 언어와 비슷합니다.

출력 포맷터 내용을 보강하기 위해 비트 연산의 예시만 살펴 보겠습니다.

fn main() {
    let b1:u8 = 0b11111111;
    let b2:u8 = 0b10101010;

    let mut b3:u8 = b1 & b2;     // 논리곱
    println!("{:0b} & {:0b} = {:0b}",b1, b2, b3);

    b3 = b1 | b2;                  // 논리합
    println!("{:0b} | {:0b} = {:0b}",b1, b2, b3);

    b3 = b1 ^ b2;                  // XOR
    println!("{:0b} ^ {:0b} = {:0>8b}",b1, b2, b3);

    b3 = ! b1 ;                     // NOT
    println!("!{:0b}  = {:0>8b}",b1, b3);
}

// 출력
11111111 & 10101010 = 10101010
11111111 | 10101010 = 11111111
11111111 ^ 10101010 = 01010101
!11111111  = 00000000

 

0b11111111은 이진수 11111111이라는 의미입니다. 접두사 0b가 사용 되었습니다.

비슷하게, 팔진수에는 0o, 십육진수에는 0x를 사용 합니다.

 

위 코드에서 println!으로 이진수의 형태로 출력하기 위해  “:0b” 포맷터를 사용했습니다.

“:0>8b” 포맷터는 8자리를 맞추되 앞의 빈자리는 0으로 채우고 이진수로 출력 하라는 의미 입니다. 

 

 
 
 
 
반응형