안녕하세요 j.sieun입니다.
연산자에 대해 배우도록 하겠습니다.
1. "=" 연산자
흔히들 수학할때는 a + b = c 라고 쓰면 a + b 는 c값이다. 라고해석이 되지만
프로그래밍 할떄에는 전혀 아닙니다. 우선적으로 저렇게 적으면 애러 나옵니다.
올바른 식은 "c = a + b " 입니다.
해석은 a와 b를 더한 값을 c에 저장한다 라고 해석합니다.
항상 = 의 연산자 읽는 순서는 ← 입니다. 그리고 ~값이다 라는게 아니라 ~ 저장한다 라고 표현합니다.
유의할점으로는 딱히 없지만 맨처음에 a = b; 라 쓰고 나중에 a = c; 라 사용할떄 a의 값은 c로 저장이 됩니다.
2. +,-,*,/ 연산자
이것들은 수학에서 사용하는 거와 똑같습니다. 그러므로 패스
3. % 연산자
이 연산자는 예를 들어 a % b 를 적게 되면 a와 b를 나눈 나머지를 구한다 라는 뜻이 됩니다.
/ 는 나눴을때 몫을 구하는것이고 %는 나눈 나머지를 뜻합니다.
4. 비트 연산자
&, | , ^ , ~
(1은 true 고, 0 은 false입니다.)
1.논리곱(and) &
각 비트를 비교하여 양쪽 모두 1 이면 1, 아니면 0 을 반환한다.
a = 150, b = 140 일때
a = 1 0 0 1 0 1 1 0
b = 1 0 0 0 1 1 0 0
a&b = 1 0 0 0 0 1 0 0
10진수로 바꾸면 132 이 됩니다.
꿀Tip .. 10진수인 수를 2진수로 변환하는 메소드는 String 문자형인변수 = Integer.toBinaryString(이진수로 바꾸고싶은 변수); 를 사용하면 쉽게 2진수로 변환할수 있습니다. :D
2.논리합(or) |
각 비트를 비교하여 어느 한쪽이 1 이면 1, 그렇지 않으면 0 을 반환한다.
a = 150, b = 140 일때
a = 1 0 0 1 0 1 1 0
b = 1 0 0 0 1 1 0 0
a|b = 1 0 0 1 1 1 1 0
10진수로 바꾸면 158가 됩니다.
3.배타적 논리함(xor) ^
각 비트를 비교하여 한쪽이 1 이고 다른 한쪽이 0 이면 1을, 아니면 0 을 반환한다.
a = 150, b = 140 일때
a = 1 0 0 1 0 1 1 0
b = 1 0 0 0 1 1 0 0
a^b = 1 1 0 1 0
10진수로 바꾸면 26가 됩니다.
4.1의 보수 표현(not) ~
1인 것을 0 , 0을 1로 변환
a = 170일떄
a = 1 0 1 0 1 0 1 0
~a = 0 1 0 1 0 1 0 1
즉, ~a = 85 가 됩니다.
감사합니다.
※궁금하신거 댓글달아주시길 바랍니다. ㅎㅎ
퍼가시는건 상관 없는데 말은 하고 퍼가주시길 바랍니다.^^※
'java' 카테고리의 다른 글
쉽지만 어려운 #Java #자바 #성공적 4.자료구조(리스트,스택,큐,해쉬테이블,집합) (0) | 2016.04.19 |
---|---|
쉽지만 어려운 #Java #자바 #성공적 4.자료구조(리스트,스택,큐,해쉬테이블,집합) (0) | 2016.04.13 |
쉽지만 어려운 #Java #자바 #성공적 2. 반복문(while)문 (0) | 2016.04.12 |
쉽지만 어려운 #Java #자바 #성공적 2.반복문(for) + 별표 피라미드 (3) | 2016.04.07 |
쉽지만 어려운 #Java #자바 #성공적 2.조건문(switch) (0) | 2016.04.04 |