일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 성수팝업스토어
- 고척돔맛집
- 코스트코4월둘째주할인상품
- seoungsupopupstore
- 성수7월팝업
- 고척동맛집
- 영등포맛집
- 코딩입문
- 코스트코3월첫째주할인상품
- 편의점신상
- 코꼬미
- 성수팝업
- 코딩기초
- 코스트코할인
- 코린이 #코딩 #코딩공부 #코딩독학 #코딩학원 #코딩초보 #비쥬얼스튜디오코드 #비주얼스튜디오코드 #코딩프로그램 #css #html
- 영등포타임스퀘어맛집
- 성수8월팝업
- 코스트코신상
- 코스트코할인기간
- 코스트코할인소식
- 코딩공부
- 스파르타코딩클럽
- 동양미래대학교맛집
- 코딩
- 양주맛집
- 영등포역맛집
- 용리단길맛집
- 양주가족모임
- 구일역맛집
- 코딩초보
- Today
- Total
쫑's바른생활
[코딩 초보 개발일지] 자바_입문_03-1. 연산자, 단항연산자 본문
<정의 알아보기>
- 연산 : 데이터를 처리하여 결과를 산출하는 것
- 연산자 : 연산에 사용되는 표시or기호
- 피연산자 : 연산되는 데이터
- 연산식 : 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
(Java 연산자)
종류 | 연산자 | 피연산자 수 | 산술값 | 기능 |
산술 | +, -, *, /, % | 이항 | 숫자 | 더하기, 빼기, 곱하기, 나누기, 나머지 계산 |
부호 | +,- | 단항 | 숫자 | 양수/음수 |
문자열 | + | 이항 | 문자열 | 문자열을 연결 |
대입 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= | 이항 | 여러값 | 우변의 값을 좌변의 변수에 대입 |
증감 | ++,-- | 단항 | 숫자 | 1만큼 증가/감소 |
비교 | ==, !=, >, <, >=, <=, instanceof |
이항 | boolean | 값의 비교 |
논리 | !, &, |, &&, || | 단항,이항 | boolean | 논릴 NOT, AND, OR 연산 |
조건 | (조건식) ? A : B | 삼항 | 여러값 | 조건식에 따라 A 또는 B 중 하나를 선택 |
비트 | ~, &, |, ^ | 단항,이항 | 숫자, boolean | 비트 NOT, AND, OR, XOR 연산 |
쉬프 | >>, <<, >>> | 이항 | 숫자 | 비트를 우측/좌측으로 밀어서 이동 |
<단항연산자>
피연산자가 하나뿐인 연산자
1. 부호 연산자(+, -)
2. 증감 연산자(++, --)
3. 논리 부정 연산자(!)
4. 비트 반전 연산자(~)
1.부호연산자
: 양수 또는 음수로 표현하는 연산자
2.증감연산자
: 값을 증가시키거나 감소시키는 연산자
(증감연산자 사용하기_순서알기)
연산식 | 설명 | |
++ | 피연산자 | 다른 연산을 수행하기 전에 피연산자의 값을 1 증가시킴 |
-- | 피연산자 | 다른 연산을 수행하기 전에 피연산자의 값을 1 감소시킴 |
피연산자 | ++ | 다른 연산을 수행한 후에 피연산자의 값을 1 증가시킴 |
피연산자 | -- | 다른 연산을 수행한 후에 피연산자의 값을 1 감소시킴 |
3.논리부정연산자
: 값(논리true/false)을 부정하는 값(반댓값)을 도출하는 연산자
4.비트반전연산자
피연산자를 2진수로 표현했을 때 비트값을 변경(반전)하는 연산자.
정수 타입(byte, short, int, long)의 피연산자에만 사용됨
비트 반전 연산자의 산출 타입은 int 타입이 됨
(비트반전연산자 예시)
public class OperatorExample {
public static void main(String[] args) {
int a = 10;
int b = 0;
b = ~a;
System.out.println(a);
System.out.println(b);
b = ~b;
System.out.println(b);
}
}
비트를 반전하는 연산자가 쓰였으므로
step01. 10을 2진수로 변환하고 반전시켜야 한다.
int는 4byte=32bit 이므로 32칸의 2진수로 10을 변환하면
000 .... 1010 이 된다.
step02. 반전시킨다
111...0101 이 된다.
여기서 중요한점! 비트반전연산자는 int타입으로 산출된다.
int 타입은 가장 앞의 비트를 부호비트(양수=0/음수=1)로 본다.
그러나 컴퓨터는 음수를 표현할 수 없으므로,
우리는 2의보수연산(부호를 바꾸어 주는 연산방법)이라는
방법으로 산출값을 표현해야 한다.
step03. 2의보수연산 구하기1
보수란, 간단히 말하면 비트를 반전시키는 것이다.
2의보수연산은 바로 구할 수는 없다.
2의보수연산=1의보수+1 인데,
1의 보수=반전 이다.
따라서 아까 나온
111 ... 0101 을 우선 1의보수로 구하면(반전하면)
000 ... 1010 이고, +1을 해주면
부호는 변하지 않은채 000 ... 1011 이 된다.
step04. 2의보수연산 구하기2
우리는 - 값을 표현하기 위해 일련의 과정들을 거쳤다.
2의 보수 연산을 통해 값을 구했지만,
컴퓨터가 표현할 수 있는 양수로 표현되어있다.
따라서 임의로 음수값(-)을 부여해준다.
산출은 int 타입이고 10진수로 바꾸면
000 ... 1011 = 11이다.
그리고 11에 음수값(-)를 붙여주면
10의 비트반전연산은 -11 이 된다.
ps. 솔직히 이 과정을 이해하지 못해도 된다.
어차피 비트반전연산자의 값을 산출하는 것은 컴퓨터이다.
우리는 컴퓨터가 어떻게 10의 비트반전연산자를 구하는지
그 과정을 이해하려고 하는 것일뿐이다.
다만, 욕심을 보태면 우리는 컴퓨터로 코딩을 하기 때문에
컴퓨터를 더 잘 이해한다면 코딩도 더 잘 이해할 수 있을 것이다.
끝!!
'개발일지 > 입문' 카테고리의 다른 글
[코딩 초보 개발일지] 자바_입문_02. 변수 선언 (0) | 2023.04.29 |
---|---|
[코딩 초보 개발일지] 자바_입문_01. 출력하기 (0) | 2023.04.26 |
[코딩 초보 개발일지] 입문_04-3. css 작업물 만들기(백그라운드 네비) (0) | 2023.04.16 |
[코딩 초보 개발일지] 입문_04-2. css 작업물 만들기(네비게이션) (0) | 2023.04.10 |
[코딩 초보 개발일지] 입문_04-1. css 작업물 만들기 (0) | 2023.04.05 |