연산(operations) : 프로그램에서 데이터를 처리하여 결과를 산출하는 것
연산자(operator) : 연산에 사용되는 표시나 기호 ( + , - , * , == )
피연산자(operand) : 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것 ( x , y , z 등의 변수)
산술연산자 -> 숫자 타입(byte,short,int,long,float,double)으로 결과값이 나옴
비교연산자/논리연산자 -> 논리 타입 (boolean)으로 결과값이 나옴
단항 연산자
(1) 부호연산자 ( + , - ) : 양수 및 음수 표시하는
- boolean타입과 char 타입을 제외한 나머지 기본타입에 사용 가능
- 부호 연산자의 산출 타입은 int 타입
short s = -100;
//short result = -s; //컴파일에러
int result = -s;
(2) 증감연산자 ( ++ , -- ) : 변수의 값을 1 증가/감소시키는 연산자
++ 피연산자 | 다른 연산을 수행하기 전에 피연산자의 값을 1 증가시킴 |
-- 피연산자 | 다른 연산을 수행하기 전에 피연산자의 값을 1 감소시킴 |
피연산자 ++ | 다른 연산을 수행한 후에 피연산자의 값을 1 증가시킴 |
피연산자 -- | 다른 연산을 수행한 후에 피연산자의 값을 1 감소시킴 |
int x=1;
int y=1;
int result1 = ++x + 10; //result1 = 12 , x=2
// ++x 다른 연산 전에 먼저 수행되므로 x=2
int result2 = y++ + 10; //result2 = 11 , y=2
// y++ 다른 연산 후에 수행되므로 result2 = 1+10=11 수행 후 y=y+1
public class IncreaseDecreaseOperatorExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 10;
int y = 10;
int z;
x++;
++x;
System.out.println("x="+x); //x=12
y--;
--y;
System.out.println("y="+y); //y=8
z=x++;
System.out.println("z="+z); //z=12, z=x 수행후 x=x+1
System.out.println("x="+x); //x=13
z=++x;
System.out.println("z="+z); //z=14, x=x+1 수행후 z=x
System.out.println("x="+x); //x=14
z=++x + y++;
System.out.println("z="+z); //z=23, x=x+1 수행후 z=x+y 수행후 y=y+1
System.out.println("x="+x); //x=15
System.out.println("y="+y); //y=9
}
}
(3) 논리부정연산자(!) : boolean타입에만 사용 O, true/false 변경
public class DenyLongicOperatorExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean play = true;
System.out.println(play); //true
play = !play;
System.out.println(play); //false
play = !play;
System.out.println(play); //true
}
}
(4) 비트 반전 연산자(~) : 정수타입(byte, short, int, long)의 피연산자에만 사용됨
- 피연산자를 2진수로 표현했을 때 비트값 0/1 반전
- 연산 후, 부호 비트인 최상위 비트를 포함해서 모든 비트 반전 -> 부호 반대
- 비트 반전 연산자의 산출 타입은 int 타입
- Integer.toBinaryString() 메소드 : 정수값을 총 32비트의 이진 문자열로 리턴
public static String toBinaryString(int value){
String str = Integer.toBinaryString(value);
while(str.length()<32){ //Integer.toBinaryString메소드는 앞의 비트가 0이면 생략되기 때문에
str = "0" + str;
}
return str;
}
public class BitReverseOperatorExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
int v1 = 10;
int v2 = ~v1;
int v3 = ~v1 + 1;
System.out.println(toBinaryString(v1)+"(십진수:"+v1+")");
System.out.println(toBinaryString(v2)+"(십진수:"+v2+")");
System.out.println(toBinaryString(v3)+"(십진수:"+v3+")");
System.out.println();
int v4=-10;
int v5 = ~v4;
int v6 = ~v4 + 1;
System.out.println(toBinaryString(v4)+"(십진수:"+v4+")");
System.out.println(toBinaryString(v5)+"(십진수:"+v5+")");
System.out.println(toBinaryString(v6)+"(십진수:"+v6+")");
}
public static String toBinaryString(int value){
String str = Integer.toBinaryString(value);
while(str.length()<32){
str = "0" + str;
}
return str;
}
}
<실행결과>
'Programming Language > Java' 카테고리의 다른 글
[JAVA] 연산자 - 삼항연산자 (0) | 2020.05.28 |
---|---|
[JAVA] 연산자- 이항연산자 (0) | 2020.05.28 |
[JAVA] 타입변환 (0) | 2020.05.25 |
[JAVA] 데이터 타입 (0) | 2020.05.21 |
[JAVA] 변수 (0) | 2020.05.21 |