상세 컨텐츠

본문 제목

8. Rust 연산자

Rust를 처음부터 배우세요

by 러스트코리아 2024. 11. 15. 17:11

본문

반응형

연산자는 데이터에 대한 일부 작업을 수행하는 데 사용됩니다.

연산자가 연산을 수행하는 데이터를 피연산자라고 합니다.

예를 들어, 일반적인 덧셈 연산에서 더하기 기호( + ) 는 연산자입니다.

예를 들어

  1. 7 + 5 = 12

7과 5는 더하기 연산자( + ) 의 피연산자 라고 하고 , 12는 연산자 연산의 결과입니다.

Rust 언어는 다음 네 가지 연산자를 지원합니다.

  • 산술 연산자
  • 비트 연산자
  • 관계 연산자
  • 논리 연산자

8.1 산술 연산자

산술 연산자는 우리가 매일 사용하는 5가지 산술 연산( 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지) 입니다.

다음 표에는 Rust 언어에서 지원하는 모든 산술 연산자가 나열되어 있습니다.

아래 표에서는 a = 10, b = 5라고 가정합니다.

이름연산자예

설명 연산자 예시
더하기 + a+b의 결과는 15입니다.
빼기 - ab의 결과는 5입니다.
곱하기 * a*b의 결과는 50입니다.
나누기 / a/b의 결과는 2
나머지 % %b의 결과는 0입니다.

참고: Rust 언어는 증가 및 감소 연산자 ++ 및 -를 지원하지 않습니다.

8.1.1 예

다음 예에서는 위에서 언급한 모든 산술 연산자를 보여줍니다.

  1. fn main() {
  2. let num1 = 10 ;
  3. let num2 = 2;
  4. let mut res:i32;
  5.  
  6. res = num1 + num2;
  7. println!("Sum: {} ",res);
  8.  
  9. res = num1 - num2;
  10. println!("Difference: {} ",res) ;
  11.  
  12. res = num1*num2 ;
  13. println!("Product: {} ",res) ;
  14.  
  15. res = num1/num2 ;
  16. println!("Quotient: {} ",res);
  17.  
  18. res = num1%num2 ;
  19. println!("Remainder: {} ",res);
  20. }

위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.

  1. Sum: 12
  2. Difference: 8
  3. Product: 20
  4. Quotient: 5
  5. Remainder: 0

8.2 관계 연산자

관계 연산자는 두 엔터티 간의 관계 유형을 테스트하거나 정의합니다.

관계 연산자는 둘 이상의 값 사이의 관계(보다 크거나 같거나 작거나)를 비교하는 데 사용됩니다.

관계 연산자의 반환 결과는 부울 유형 입니다 .

다음 표에는 Rust 언어에서 지원하는 모든 관계 연산자가 나열되어 있습니다.

아래 표에서는 A = 10, B = 20이라고 가정합니다.

이름연산자설명하다예

이름 연산자 설명 예시
보다 큼 > 왼쪽 피연산자가 오른쪽 피연산자보다 크면 true를 반환하고 그렇지 않으면 false를 반환합니다. (A > B)는 false를 반환합니다.
미만 < 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 true, 그렇지 않으면 false를 반환합니다. (A < B)는 true를 반환합니다.
이상 >= 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다. (A >= B)는 false를 반환합니다.
보다 작거나 같음 <= 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다. (A <= B)는 true를 반환합니다.
동일한 == 왼쪽 피연산자가 오른쪽 피연산자와 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다. (A == B)는 true를 반환합니다.
같지 않음 != 왼쪽 피연산자가 오른쪽 피연산자와 같지 않으면 true를 반환하고 그렇지 않으면 false를 반환합니다. (A != B)는 false를 반환합니다.

8.2.1 예

아래에서는 위에서 언급한 관계 연산자의 기능과 결과를 보여주기 위해 작은 코드 조각을 사용할 것입니다.

  1. fn main() {
  2. let A:i32 = 10;
  3. let B:i32 = 20;
  4.  
  5. println!("Value of A:{} ",A);
  6. println!("Value of B : {} ",B);
  7.  
  8. let mut res = A>B ;
  9. println!("A greater than B: {} ",res);
  10.  
  11. res = A<B ;
  12. println!("A lesser than B: {} ",res) ;
  13.  
  14. res = A>=B ;
  15. println!("A greater than or equal to B: {} ",res);
  16.  
  17. res = A<=B;
  18. println!("A lesser than or equal to B: {}",res) ;
  19.  
  20. res = A==B ;
  21. println!("A is equal to B: {}",res) ;
  22.  
  23. res = A!=B ;
  24. println!("A is not equal to B: {} ",res);
  25. }

위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.

  1. Value of A:10
  2. Value of B : 20
  3. A greater than B: false
  4. A lesser than B: true
  5. A greater than or equal to B: false
  6. A lesser than or equal to B: true
  7. A is equal to B: false
  8. A is not equal to B: true

8.3 논리 연산자

논리 연산자는 두 개 이상의 조건을 결합하는 데 사용됩니다.

논리 연산자의 반환 결과도 부울 유형입니다.

다음 표에는 Rust 언어에서 지원하는 모든 논리 연산자가 나열되어 있습니다.

아래 표에서는 A = 10, B = 20이라고 가정합니다.

이름연산자설명하다예

이름 연산자 설명 예시      
논리 AND && 두 조건식이 모두 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. (A > 10 && B > 10)의 결과는 거짓입니다.      
논리적 또는 `   ` 양쪽의 조건식 중 하나가 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. (A > 10 B >10) 결과는 참이다
논리적 부정 ! 표현식이 true이면 false를 반환하고, 그렇지 않으면 true를 반환합니다. !(A >10)의 결과는 true입니다.      

8.3.1 예

논리 연산자는 3개만 있으므로 간단합니다.

논리 연산자와 그 계산 결과를 사용하는 방법을 보여 주는 작은 코드를 작성해 보겠습니다.

  1. fn main() {
  2. let a = 20;
  3. let b = 30;
  4.  
  5. if (a > 10) && (b > 10) {
  6. println!("true");
  7. }
  8. let c = 0;
  9. let d = 30;
  10.  
  11. if (c>10) || (d>10){
  12. println!("true");
  13. }
  14. let is_else = false;
  15.  
  16. if !is_else {
  17. println!("not else");
  18. }
  19. }

위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.

  1. true
  2. true
  3. not else

8.4 비트 연산자

다음 표에는 Rust가 지원하는 모든 비트 단위 연산이 나열되어 있습니다.

변수 A = 2, 변수 B = 3이라고 가정합니다.

  1. A 이진 형식
  2.  
  3. 0 0 0 0 0 0 1 0
  4.  
  5. B 이진 비트 형식은 다음과 같습니다.
  6.  
  7. 0 0 0 0 0 0 1 1

 

이름 연산자 설명 예시    
비트 AND & 동일한 비트가 모두 1이면 1을 반환하고, 그렇지 않으면 반환합니다. 0(A & B) 결과는 2입니다.    
비트 또는 ` ` 동일한 비트 중 하나가 1이면 1이 반환되고, 그렇지 않으면 0이 반환됩니다. (A B) 결과는 3이다.
XOR ^ 동일한 비트가 동일하지 않으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. (A ^ B) 결과는 1입니다.    
- ! 비트의 1을 0으로, 0을 1로 바꿉니다. (!B) 결과 -4      
왼쪽으로 이동 << 피연산자의 모든 비트는 지정된 비트 수만큼 왼쪽으로 이동하고 오른쪽의 비트는 0으로 채워집니다. (A << 1) 결과는 4입니다.    
오른쪽으로 이동 >> 피연산자의 모든 비트는 지정된 비트 수만큼 오른쪽으로 이동하고 왼쪽의 비트는 0으로 채워집니다. (A >> 1) 결과는 1입니다.    

8.4.1 예

다음 예에서는 위에서 언급한 모든 비트 연산자를 보여줍니다.

  1. fn main() {
  2. let a:i32 = 2; // 이진 표현은 다음과 같습니다. 0 0 0 0 0 0 1 0
  3. let b:i32 = 3; // 이진 표현은 다음과 같습니다. 0 0 0 0 0 0 1 1
  4.  
  5. let mut result:i32;
  6.  
  7. result = a & b;
  8. println!("(a & b) => {} ",result);
  9.  
  10. result = a | b;
  11. println!("(a | b) => {} ",result) ;
  12.  
  13. result = a ^ b;
  14. println!("(a ^ b) => {} ",result);
  15.  
  16. result = !b;
  17. println!("(!b) => {} ",result);
  18.  
  19. result = a << b;
  20. println!("(a << b) => {}",result);
  21.  
  22. result = a >> b;
  23. println!("(a >> b) => {}",result);
  24. }

위의 Rust 코드를 컴파일하고 실행하면 출력 결과는 다음과 같습니다.

  1. (a & b) => 2
  2. (a | b) => 3
  3. (a ^ b) => 1
  4. (!b) => -4
  5. (a << b) => 16
  6. (a >> b) => 0
현재 콘텐츠 저작권은 chapin666 또는 그 계열사에 있습니다.
반응형

'Rust를 처음부터 배우세요' 카테고리의 다른 글

10. Rust 반복문  (0) 2024.11.15
9. Rust 조건부 판단  (0) 2024.11.15
7. Rust 문자열  (0) 2024.11.15
6. Rust 상수  (0) 2024.11.13
5. Rust 변수 정의  (0) 2024.11.13

관련글 더보기