JAVA

[Java] Sugar code, 이진법, Java bit, if문, 반복문

SangRok Jung 2022. 5. 22. 16:58
반응형

Java에서 규칙과 사이즈가 다르다면 type casting은 이루어 지지 않는다.

 

 

 

 

 

Suagr code


개발자들이 관례적으로 과거서 부터 사용해온 코드. 모든 언어들이 가지고 있다.

특히 C언어가 많은편이며 그에 반해 Java는 적은편이다.

 

 

 

 

 

 

 

 

Bit


1bit가 저장 할 수 있는 상태는 제곱 개다.

8bit = 1byte

단위 저장 할 수 있는 상태 수
0bit 1개 (2의 0제곱)
1bit 2개 (2의 1제곱)
2bit 4개 (2의 2제곱)
3bit 8개 (2의 3제곱)
4bit 16개 (2의 4제곱)
5bit 32개 (2의 5제곱)
6bit 64개 (2의 6제곱)
7bit 128개 (2의 7제곱)

int = 4byte = 32bit = 2의 32제곱의 상태 수

CPU는 1byte, 2byte를 써도 4byte로 읽고 나머지를 빼서 처리하기 때문에 4byte의 크기를 가지고 있는 type을 사용하는게 효율적이다.(byte short는 배열을 잡기 위해 사용된다.)

 

 

LSB(least signifcant bit)

이진 정수에서 짝수, 홀수를 정하는 비트 위치.

 

 

MSB(most signifcant bit)

이진 정수에서 최고값을 가지는 비트위치.

 

un signed - 전체를 양수로 사용한다.

signed - 음수와 양수 둘다 사용한다.

 

 

 

 

 

 

변수, 상수


int의 정수는 음수와 양수 둘다 사용하기 때문에 MSB위치가 signbit가 되어 2의 32제곱이 아닌 31제곱이 된다.

a = a+1 a = a+1
Left Value Right Value
변수 상수
변하지 않음 변함
변수 a 상수 a

변수 a와 상수 a는 다르다.

 

 

 

 

 

 

 

좋은 코드 VS 나쁜 코드


◎ a += 1

◎ a = a + 1

위의 두 코드는 같은 의미를 가지고 있지만 위 코드가 아래 코드에 비해 보기 어렵기 때문에 아래의 코드가 더 좋은 코드다.

 

"사과가 10개 이상인 경우" 를 코드로 옮겼을 때

◎ if (apple >= 10)

◎ if (apple > 9)

둘 중 위의 코드가 더 좋은 코드라고 볼 수 있다.

 

"양갱이 20개씩 4줄있고 30개를 추가로 받았다."를 코드로 옮겼을 때

◎ yang = 30 + (4 * 20)

◎ yang = 30 + 4 * 20

당연히 연산자 우선순위를 고려한 위의 코드가 더 좋은 코드라고 보는것이다.

 

 

 

 

 

이진법 계산식


※ 이진법 1000 1000을 계산한 표

1 0 0 0 1 0 0 0
2의 7 제곱 (128) 2의 6 제곱 (64) 2의 5 제곱 (32) 2의 4 제곱 (16) 2의 3 제곱 (8) 2의 2 제곱 (4) 2의 1 제곱 (2) 2의 0 제곱 (1)
V       V      

1000 + 1000 = 2의 8제곱 + 2의 3제곱 = 136

 

 

 

 

 

 

 

 

int의 계산


int a = 4/3; 의 결과값은 1.3에서 int의 정보 저장 방식에 따라 1밖에 처리 하지 못하여 1이 계산된다.

byte a = 4/3; 의 결과값은 byte가 정보를 저장할 공간을 초과하여 error가 출력된다.

int a = 4/0; 의 결과값은 4/2로 예를 들었을 때 4 - 2 = 2, 2 - 2 = 0와 같이 0이 도출 될 때 까지 의 식을 거치게 되기 때문에 4/0 같은 경우 4 - 0 = 0이 반복되기 때문에 error가 출력된다.

 

 

 

 

 

 

 

 

if문


조건에 따라 코도의 실행 흐름을 다르게 동작하도록 제어하는 구문

◎ (! (score > 90)? "가" : "나");

◎ if (score > 90)

     "나"

else

     "가"

위 둘의 코드는 90보다 크면 "나" 아니면 "가" 라는 뜻을 가지고 있지만 위 코드와 아래 코드는 편안함의 차이가 있다.

 

 

 

 

loop문


문장들을 반복해서 여러 번 수행되게 할 때 사용하는 구문

종류 상황 예시 차이점
for loop 구구단 Compile time에 loop수를 즉시 알 수 있다.
while loop 보스몹의 체력이 다 없어질 때 까지  Compile time에 loop수 정확히 알 수 없다.

 

반응형