Frog is cry
Day4 본문
비트 연산
논리 연산자
&(AND) 논리곱 : 두 비트 모두 1이면 1
|(OR) 논리합 : 둘 중 하나라도 1이면 1
^(XOR) 배타 논리합 : 두 비트가 서로 다르면 1
단항 연산자
~(NOT) 논리부정 : 0은 1로 1은 0으로 변경
부호 비트 : 최상위 비트가 0이면 양수, 1이면 음수
~a = -a - 1
2의 보수
문제)1 1110 1010
1. 우에서 좌로 읽는다.
2. 처음으로 나오는 1을 찾는다.
3. 그 다음 비트부터 비트를 반대로 변경한다.
예)0 0001 0110
4. 10진수로 변경한다.
예)22
5. 마이너스(-)를 붙여준다.
정답)-22
쉬프트 연산자(비트 이동)
<< : a << b a를 b만큼 좌로 비트이동
>> : a >> b a를 b만큼 우로 비트이동
빈 칸은 0으로 (음수는 1로) 채워지고
비트가 넘어가면 자동으로 잘린다.
--------------------------------------------------------------------------
조건식
결과가 참 또는 거짓 둘 중 하나가 나오는 식
0 : 거짓
1 : 참(0 이외의 모든 수)
자바에서는 거짓을 false, 참을 true라는 값으로 사용한다.
논리형 boolean 1byte ture, false
관계 연산자
== : 같다
!= : 같지 않다
>, < : 초과, 미만
>=, <= : 이상, 이하
논리 연산자
&&(AND) : A && B A와 B조건식 모두 참이면 참
||(OR) : A || B 둘 중 하나라도 참이면 참
단항 연산자
!(NOT) : !A 참이면 거짓으로 거짓이면 참으로 변경
-------------------------------------------------------------------------
삼항 연산자(? :)
조건식 ? 참 : 거짓
조건식 ? 값1 : 값2 ----> 참이면 통채로 값1, 거짓이면 값2
-------------------------------------------------------------------------
제어문
조건문
if문
if(조건식){
실행할 문장;
}
※위의 조건식과 상관없이 모두 검사
if(조건식){
실행할 문장;
}
if(조건식){
실행할 문장;
}
if(조건식){
실행할 문장;
※위의 조건식이 거짓이면 검사
}else if(조건식){
실행할 문장;
}else{
실행할 문장;
}
switch문
switch(변수명){
case 값1:
실행할 문장;
break;
case 값2:
실행할 문장;
break;
case 값3:
실행할 문장;
break;
...
default:
실행할 문장;
}
삼항연산자와 if문의 차이
삼항연산자는 연산속도가 더 빠르다. 하지만 메모리를 더 사용한다.
if문은 상대적으로 느리지만 메모리를 덜 사용한다.
if문과 switch문의 차이
if문은 대소비교 혹은 논리연산자를 사용해야 할 때 적합하고
switch문은 하나의 변수에 여러 값이 담길 수 있고 같은지를 확인할 때
사용한다.
대입 연산자(복합 대입 연산자, 누적 연산자)
+=, -=, *=, /=, %=,...
int money = 10000;
//money = money - 1000;
money -= 1000;
System.out.println(money);
int data = 10;
//data = data + 1;
//data += 1;
data++;
증감 연산자(++ --)
전위형 : 해당 줄부터 적용
--data
후위형 : 다음 줄부터 적용
data++
------------------------------------------------------------------
반복문
for문
for(초기식; 조건식; 증감식){
반복할 문장;
}
while문
do~while문
Comments