java

쉽지만 어려운 #Java #자바 #성공적 3.연산자

sieunju 2016. 4. 12. 21:33
반응형

안녕하세요 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 가 됩니다. 


감사합니다.


※궁금하신거 댓글달아주시길 바랍니다. ㅎㅎ


퍼가시는건 상관 없는데 말은 하고 퍼가주시길 바랍니다.^^※


반응형