성장 일기/쌍용교육센터 / / 2022. 12. 12. 12:28

1205/연산자

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.

 

연산자(Operator)는 연산에 사용되는 예약된 부호들이다.

 

연산자 순서 외우기 쉽게 표현하면

최 단산쉬 관리 삼대 콤마
  1. 최우선 : ()
  2. 단항 : ~, !, +, -, ++, --
  3. 산술 : +, -, *, /, %
  4. 쉬프트 연산 : <<, >>, >>>
  5. 관계 : >, <, >=, <=, ==, !=
  6. 논리 : 일반 논리(&&, ||), 비트 논리(&, |, ^)
  7. 삼항 : 식? true:false
  8. 대입 : =, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, |=, ^=

 

진수는 서로 다른 모양의 숫자 몇 개로 모든 수를 표현하는 수이다.

코딩 시에는 8진수, 10진수, 16진수 모두 사용 가능하고

사용자가 어떤 진수를 사용하더라도 2진수로 저장하고 연산한다.

코딩 창에서 수 사용시  8진수는 0수 6진수는 0x수로 표현한다.

 

2진수는 컴퓨터의 저장 공간의 단위 byte이다.

스위치가 닫히면 전기가 흐르는 상태에서 값은 1을 가지고

스위치가 열리면 전기가 흐르지 않는 상태에선 0을 가진다.

 

8진수, 16진수를 2진수로 표현하는 법은

각 자리 값마다 2진수로 바꿔주고 나열하면 된다.

 

예를 들어 015라는 8진수 값이 있으면

1  5에서 001 101

이렇게 수마다 2진수로 바꿔주고

나열하고 양수인 경우엔 앞에 0을 제거하면 된다.

 

16진수도 마찬가지이다

0x1a라는 16진수 값이 있으면

1  a에서 0001 1010

2진수로 바꿔주고 나열하고 양수의 경우 앞에 0을 제거하면 된다.

 

음수 표현으로는

최상위 부호 비트가 0이면 양수, 1이면 음수이고

양수로 작성하고 보수를 취하는 2의 보수법으로 표현한다.

 

2진수 2로 예를 들어 -2를 알아보자.

0000 0010(2)이면 1111 1101(-3)로 바꾼다. (1의 보수)

1111 1101에서 1을 추가해 1111 1110(-2)으로 만든다.(2의 보수)

1의 보수나 2의 보수에 대해 자세한 건 구글링을 찾아보면 많이 자료가 있다.

 

단항은 연산에 필요한 항이 하나인 연산자이다.

~은 1의 보수 연산을 수행하는 것이다. (부호 바꾸고 -1)

~10을 수행하면 -11으로 변경되고

~-10을 수행하면 9로 변경된다.

 

!(NOT)은 true를 false로 false를 true로 상태를 변환시킨다.

 

++, --는 대상체의 값을 1씩 증가, 감소하는 연산자다.

대상체가 변수일 때만 가능하고

전위일 때는 바로 1을 추가한 상태로 수행을 하는데

후위일 때는 작업을 수행하고 그 뒤에 1을 추가한다.

예시는 아래와 같다.

int i = 12;
int y = ++i; //13;
y = i++; //13;
//대입이 끝나고 i는 14로 증가

 

산술 연산자는 +, -, *, /, %가 있고

/, %에서

정수와 정수의 연산에서 정수가 결과값이 나오고

실수와 정수에선 실수값이 결과값이 나오고

실수와 실수에서 실수값이 나온다.

 

관계연산자(대소 비교)는 >, < , >=, <=, ==, !=가 있고

==는 같은 지를 비교하고 같다면 true, 다르면 false의 값이 나온다.

!=는 같지 않은 지를 비교하고 같다면 false, 다르면 true의 값이 나온다.

 

자동 형변환(Promotion)

크기가 작은 데이터형과 크기가 큰 데이터형이 연산되면

크기가 작은 데이터형의 크기가 커져서 연산된다.

 

강제 형변환(Casting)

개발자가 원하는 데이터 형으로 일시적인 형변환을 수행하는 것이다.

기본형에서 참조형으로 강제 형변환이 되지 않는다.

값의 손실이 발생할 수 있다.

 

배우고 느낀점

여러 연산자와 진수의 표현 그리고 형변환의 종류에 대해

알아보았다. 이러한 연산자들을 사용해서 소스코드를

짤 때 많이 사용할 테니깐 많이 봐두면 좋을 거 같다.

 

 

 

'성장 일기 > 쌍용교육센터' 카테고리의 다른 글

1208/조건문, 반복문  (0) 2022.12.12
1207/소스코드 동작, 이클립스 개요  (0) 2022.12.12
1206/연산자  (0) 2022.12.12
1202/변수  (0) 2022.12.11
1201/환경 설정  (0) 2022.12.04
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유