-
[3일차] Do it! 자바 완전 정복 / 3장IT/자바 2022. 5. 9. 17:07
1. 책 DB를 넣어주세요. (글감 > 책 클릭 > 내가 지금 공부하는 책 검색 및 선택)
2. 나의 스터디 흔적을 사진으로 보여주세요. 책상(모니터)과 책이 함께 보이면 최고!
예시) 지우쭈님의 된다! 7일 실무 엑셀을 공부한 흔적: https://vo.la/LBxH
3. 이번 스터디에서 특별히 좋았던 점이나 어려웠던 점이 있었나요? 새로 알게된 부분이 있다면 알려주세요. 다음에 이 책으로 공부할 스터디룸의 독자들에게 큰 도움이 됩니다. (200자 이내)
예시) 뚜기님의 Do it! 점프 투 파이썬 스터디 노트 : https://vo.la/WhN6
* 연산자 종류 : 연산 결과에 따라 3가지로 나누어 진다 (값 / 참 또는 거짓 / 실행)
* 값 : 산술 연산자, 증감 연산자, 비트 연산자, 시프트 연산자
* 참 또는 거짓 : 비교 연산자, 논리 연산자
* 실행 : 대입 연산자, 삼항 연산자
* 비트 연산자 (사실 잘 이해하지 못하던 연산자다.. ㅠㅠ)
* 비트 단위의 연산자
* 종류 : AND(&), OR(|), XOR(^), NOT(~)
* AND(&) : 두 값이 "모두" 1일 때만 1인 연산자
* OR(|) : 두 값이 "모두" 0일 때만 0인 연산자
* XOR(^) : 두 값이 "같을" 때 0, "다를" 때 1인 연산자
* NOT(~) : 0은 1, 1은 0 으로 "반전"하는 연산자
* 비트 연산자 진리표
값 1값 2AND(&)OR(|)XOR(~)00000010111001111110* 비트 AND, OR, XOR 연산 과정
* 비트 단위의 연산을 계산하기 위해서는 10진수 -> 2진수 로 바꿔 표기 가능해야 함
* 자바 코드 상 10진수 > 2진수, 8진수, 16진수 변환하는 메서드를 활용하자!
* Integer.toBinaryString(), Integer.toOctalString(), Integer.toHexString()
* 2진수, 8진수, 16진수 > 10진수 변환 메서드 : Integer.parseInt()
* 2진수 표기 : 0b + 숫자
* 8진수 표기 : 0 + 숫자
* 16진수 표기 : 0x + 숫자
* 비트 NOT(~) 연산 과정
* 0과 1을 반전시키는 연산으로 부호 비트까지 반전시킴
* 양숫값과 음숫값 읽는 방법 : 첫 번째 비트는 부호 비트 (0: 양수, 1: 음수)로써 숫자 부호를 결정
* 부호 비트 이후 차례대로 읽는다.
* 양숫값 : 숫자 1을 기준으로 읽는다. ex) 00...001010 -> 양수 2^3 + 2^1 = 10
* 음숫값 : 숫자 0을 기준으로 읽은 후 1을 더한 값이 음수의 절댓값이다. ex) 11...111010 -> 음수 2^2 + 2^0 + 1 = 6 즉, -6
* 시프트 연산자 (shift operator)
* 비트의 위치를 좌우로 이동하는 연산
* 종류 : 산술 시프트(<<, >>), 논술 시프트(>>>)
* 산술 시프트 : 숫자의 부호 비트는 유지하면서 나머지 비트를 왼쪽(<<) 또는 오른쪽(>>)으로 이동하는 연산자
* 논리 연산자
* 비트 연산자와 비슷하지만 피연산자로 불리언값(true 또는 false)만 올 수 있고 연산 결과도 불리언 타입만 가진다.
* 종류 : AND(&&), OR(||), XOR(^), NOT(!)
* 논리 XOR(^) 연산자는 두 값이 다를 때는 true, 같을 때는 false 연산 결과를 나타낸다.
* 논리 연산자 진리표
값 1값 2AND(&&)OR(||)XOR(^)falsefalsefalsefalsefalsefalsetruefalsetruetruetruefalsefalsetruetruetruetruetruetruefalse* 쇼트 서킷 (short circuit)
* 정의 : 연산을 수행하는 과정에서 결과가 이미 확정된 경우 나머지 연산 과정을 생략하는 것
* 논리 연산자로 논리 연산을 수행할 때는 '쇼트 서킷'이 적용되지만, 비트 연산자로 논리 연산을 수행할 때는 적용되지 않음
-> 예전에 개발할 때 멋모르고 논리 연산자로 AND, OR 연산자 적용하고 나머지 연산이 수행되지 않아 오류가 생긴 적이 있었는데 이러한 이유 때문이었음... ㅠㅠ
* 대입 연산자 ( = )
* 정의 : 오른쪽 피연산자의 연산 결과를 왼쪽 변수에 대입하는 연산자
* 삼항 연산자
* 문법 => (참 또는 거짓) ? 참일 때 연산 결과 : 거짓일 때 연산 결과
4. 열심히 실습한 코드를 저장해 첨부해 주시거나 자랑할만한 스크린샷이 있다면 올려주세요.
원글 : https://cafe.naver.com/doitstudyroom/39330
'IT > 자바' 카테고리의 다른 글
[공부단 스터디] [2일차] Do it! 자바 완전 정복 / 2장 (0) 2022.05.07 [공부단 스터디] [1일차] Do it! 자바 완전 정복 / 1장 (0) 2022.05.07