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으로 채우고 이진수로 출력 하라는 의미 입니다.
반응형