JAVA 개념 2-3 - 연산자

2022. 11. 14. 16:16· JAVA/JAVA 개념
목차
  1. 연산자
  2. 1) 사칙연산(Arithmetic operators)
  3. 2) 대입 연산(Assignment operators)
  4.  
  5.  
  6. 사칙연산과 대입연산 종합 예제
  7.  
  8. 실행결과
  9. 3) 비트연산자(Bitwise operators)
  10. 비트 쉬프트 연산과 XOR 연산 예제
  11.  
  12. 실행 결과
  13. 논리 연산자(Logical operators)
  14. 관계 연산자(Relational operators)

연산자

: 프로그램에서 변수의 값들을 계산하기 위해 사용합니다. 사칙연산, 대입 연산, 비트 연산, 논리 연산, 관계 연산 등이 있습니다.

 

 

1) 사칙연산(Arithmetic operators)

: 숫자 데이터를 이용해 기본적인 수학연산을 수행합니다.

 

사칙연산자 사용 예 의미 결과
+ 5 + 3 덧셈 연산 8
- 5 - 3  뺄셈 연산 2
* 5 * 3 곱셈 연산 15
/ 5 / 3 나누기 연산 1
% 5 % 3 나머지 연산 2

 

 

2) 대입 연산(Assignment operators)

: 변수에 값을 대입하기 위한 연산자로 축약형과 단항 연산자 등이 포함돼 있습니다.

 

대입 연산자 사용 예 의미 결과
= speed = 50; 변수 speed에 50의 값을 할당 50
+= speed += 5; speed = speed + 5; 와 같음 55
-= speed -= 5; speed = speed - 5; 와 같음 50
*= speed *= 5; speed = speed * 5; 와 같음 250
/= speed /= 5; speed = speed / 5; 와 같음 50
%= speed %= 5 speed = speed % 5; 와 같음 0
++ speed ++; speed = speed + 5; 와 같음 5
-- speed --; speed = speed - 5; 와 같음 0
더보기

 증감연산자 : ++, --와 같은 단항 연산자는 변수명 앞 혹은 뒤에 사용할 수 있습니다. 앞에 사용하는 경우 값을 먼저 증/감한 후 변수에 대입하며 뒤에 사용하는 경우 현재 변수 값을 사용한 다음 증/감한 값을 대입하게 됩니다.

 

 

사칙연산과 대입연산 종합 예제

public class Operator1 {
    public static void main(String[] args) {
        int num1 = 30;
        int num2 = 14;

        int result1 = num1 * num2;
        int result2 = num1 % num2;

        System.out.printf("result1 : %d \n", result1);
        System.out.printf("result2 : %d \n", result2);
        System.out.println("-------------------");

        num1++;
        num2 *= 2;
        System.out.printf("num1++ : %d \n", num1);
        System.out.printf("num2 *= 2 : %d \n", num2);
        System.out.println("-------------------");

        System.out.printf("num1++ : %d \n", num1++);
        System.out.printf("--num1 : %d \n", --num1);
    }
}

 

실행결과

result1 : 420 
result2 : 2 
-------------------
num1++ : 31 
num2 *= 2 : 28 
-------------------
num1++ : 31 
--num1 : 31

 

 

3) 비트연산자(Bitwise operators)

: 일반적으로 사용하는 10진수 혹은 문자에 대한 연산이 아닌 비트단위의 연산에 사용되는 연산자입니다.

 

비트 연산자 의미 사용 예  결과
& 비트 AND 연산 a & b a(40): 0010 1000,
b(122): 0111 1010,
r: 0010 1000
| 비트 OR 연산 a | b a: 0010 1000,
b: 0111 1010,
r: 0111 1010
^ 비트 XOR 연산 a ^ b a: 0010 1000,
b: 0111 1010,
r: 0101 0010
~ 비트 inverse(역)연산,
0 -> 1, 1 -> 0
a - b a: 0010 1000,
r: 1101 0111
>> 비트를 우측으로 이동(shift),
2로 나누는 효과
a >> 2 a: 0010 1000,
r: 0000 1010
<< 비트를 좌측으로 이동(shift),
2를 곱하는 효과
a << 2 a: 0010 1000,
r: 1010 0000
  • 비트 시프트시 빈자리는 기본적으로 0으로 채웁니다.
  • 단, >> 연산시 최상위 비트가 1인(음수를 의미) 경우 빈자리는 1로 채워집니다.
  • 부호가 없는 데이터 연산의 경우 >>>을 사용해 빈자리를 무조건 0으로 채웁니다.
  • XOR 연산은 같으면 false(0) 다르면 true(1)입니다.

 

 

비트 쉬프트 연산과 XOR 연산 예제

public class Operator2 {
    public static void main(String[] args) {
        int num1 = 50;
        System.out.printf("정수값 num1 : %d, %s\n", num1, Integer.toBinaryString(num1));		

        int result1 = num1 >> 1;
        System.out.printf("num1 >> 1 : %d, %s\n", result1, Integer.toBinaryString(result1));

        int result2 = num1 << 1;
        System.out.printf("num1 << 1 : %d, %s\n", result2, Integer.toBinaryString(result2));

        System.out.println("------------------");

        int pwd = 123456;
        int encPwd, decPwd;
        int key = 0x1A253B65;
                
        System.out.println("암호화 전 비밀번호 : "+pwd);

        encPwd = pwd ^ key;

        System.out.println("암호화 후 비밀번호 : "+encPwd);

        decPwd = encPwd ^ key;

        System.out.println("복호화 후 비밀번호 : "+decPwd);
    }
}

 

실행 결과

정수값 num1 : 50, 110010
num1 >> 2 : 25, 11001
num1 << 2 : 100, 1100100
------------------
암호화 전 비밀번호 : 123456
암호화 후 비밀번호 : 438622501
복호화 후 비밀번호 : 123456

 

 

 

논리 연산자(Logical operators)

: true 혹은 false를 반환하는 연산자로 여러 조건을 만족하는지 체크하기 위한 용도로 if문 등에서 사용됩니다.

 

논리 연산자 의미 사용 예 결과
&& AND 연산, 양쪽이 모두 참인 경우에만 true 리턴을 합니다. A && B false
|| OR 연산, 양쪽중 한쪽만 참이어도 true 리턴을 합니다. A || B true
! 단항연산으로 NOT 연산 !A false

 

 

관계 연산자(Relational operators)

: 왼쪽과 오른쪽의 피연산자를 비교한 결과를 true, false로 리턴하는 연산자입니다. 보통 if, while문 등에서 수행조건을 체크하기 위해 사용합니다.

 

관계 연산자 의미
> 크다
>= 같거나 크다
< 작다
<= 같거나 작다
== 같다
!= 같지 않다

'JAVA > JAVA 개념' 카테고리의 다른 글

JAVA 개념 3-1 - 조건문  (0) 2022.11.23
JAVA 개념 2-4 - 자바 메모리 관리  (0) 2022.11.14
JAVA 개념 2-2 - 변수와 메서드  (0) 2022.09.28
JAVA 개념 2-1 - 자바 기본 문법  (0) 2022.09.20
JAVA 개념 1-2 - 가상 머신과 JDK  (0) 2022.09.19
  1. 연산자
  2. 1) 사칙연산(Arithmetic operators)
  3. 2) 대입 연산(Assignment operators)
  4.  
  5.  
  6. 사칙연산과 대입연산 종합 예제
  7.  
  8. 실행결과
  9. 3) 비트연산자(Bitwise operators)
  10. 비트 쉬프트 연산과 XOR 연산 예제
  11.  
  12. 실행 결과
  13. 논리 연산자(Logical operators)
  14. 관계 연산자(Relational operators)
'JAVA/JAVA 개념' 카테고리의 다른 글
  • JAVA 개념 3-1 - 조건문
  • JAVA 개념 2-4 - 자바 메모리 관리
  • JAVA 개념 2-2 - 변수와 메서드
  • JAVA 개념 2-1 - 자바 기본 문법
kms152000
kms152000
kms152000
백엔드 공부
kms152000
전체
오늘
어제
  • 분류 전체보기 (208)
    • JAVA (32)
      • JAVA 개념 (13)
      • 생활코딩 JAVA 입문 수업 (19)
    • Frontend (0)
      • HTML (0)
      • CSS (0)
      • JS (0)
    • Backend (2)
      • Spring 인강 (2)
    • 코딩 테스트 (154)
      • JAVA - 백준 단계별로 풀어보기 (110)
      • Python - 백준 단계별로 풀어보기 (44)
    • 자격증 (12)
      • 정보처리기사 인강 - 필기 (5)
      • 정보처리기사 인강 - 실기 (7)
    • Database (0)
      • MySQL (0)
      • Oracle (0)
    • 개발 환경 (5)
      • JAVA (1)
      • Eclipse (1)
      • Eclipse 오류 해결 (1)
      • Apache Tomcat (1)
      • IntelliJ (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • hELLO 티스토리 스킨

인기 글

태그

  • 3항 연산
  • Eclipse console 한글 오류
  • 이클립스 환경 설정
  • 제어자
  • 관계연산자
  • 로깅 프레임워크
  • 비트 연산자
  • 자바
  • asList
  • 자바 개념
  • Java
  • 백준
  • 자바 컴파일 순서
  • 백준 자바 10869번
  • 백준 자바 1001번
  • java 메서드
  • Eclipse 환경 설정
  • 사칙 연산
  • 다차원 배열
  • 생활코딩
  • Eclipse 한글
  • 백준 자바 1008번
  • 논리연산자
  • 자바 기본 문법
  • 백준 1000번 자바
  • 키보드 입력과 로깅
  • JAVA 변수
  • copyOf
  • 대입 연산
  • 백준 10998번 자바

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
kms152000
JAVA 개념 2-3 - 연산자
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.