[K-디지털 트레이닝] 학습정리 18일차 (2024-07-11)

smoo·2024년 7월 11일

JAVA_STUDY

목록 보기
3/25

1. 유니코드란 무엇인가요?

전 세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식

자료 출처: https://www.unicode.org/charts/PDF/UAC00.pdf


2. 2의 보수법이란?

컴퓨터는 2진수이기 때문에 각 비트가 더해서 2가 되는 보수를 이용해 음수를 표현할 수 있다.
자료 출처 : 강습교재 PDF파일


3. 컴퓨터에서 음의 정수 표현 방법에 대하여 설명하시오.

양의 정수의 이진수 표현에 2의 보수를 취한 결과를 음의 정수로 표현한다.

★ 2의 보수를 구하는 공식

n의 보수 + 1

① 1의 보수는 현재 2진수에 1은 0으로, 0은 1로 변환하면 된다. 0101 -> 1010(1의 보수)
② 이 상태에서 끝에 1을 더해주면 2의 보수가 된다.
1010(1의보수) + 1 = 1011(2의보수)


4. 실수의 표현법(고정소수법, 부동소수법)을 설명하시오.

고정소수법 (Fixed Point)

  • 10진수를 2진수로 바꿨으면, 그걸 그대로 넣는 방식
  • 숫자를 정수 부분과 소수 부분으로 나누어 각각 고정된 위치에 저장

    (이미지 출처 : https://www.tcpschool.com/)

부동소수점 (Floating Point)

  • 부동 - 둥둥 떠다니며 정해진 위치가 없음 - float 와 유사
  • 가수(mantissa)와 지수(exponent)로 구분하여 표현


    (이미지 출처 : https://www.tcpschool.com/)

5. 상수란 무엇이며 변수와의 차이는?

  • 상수 : 수식에서 변하지 않는 값
  • 변수는 메모리에 할당되는 값이 변할 수 있으나
  • 상수는 메모리에 할당되는 값이 고정되어 변할 수 없다.

6. 초기화란 무엇인가?

변수든 상수든 처음으로 값 할당


7. 아래의 출력에 올바른 값이 나오지 않는 이유는?

int a = 21000000000; //21억
int b = 21000000000; //21억
int c = a + b; 
System.out.print(c)
  • int의 데이터 허용 범위를 넘어섰기 때문이다.
  • 데이터 허용 범위가 더 큰 자료형인 long 을 쓰면 해결 된다.

8. 아래를 코딩 하시오.

문제1)

  • 클래스 : RecatangleArea
  • 가로가 12.5 세로가 13.1 인 사각형의 넓이를 구하는 프로그램을 짜시오. 단) 변수 3개
    ▼ 출력 결과 ▼
    가로:
    세로:
    넓이:

✅ 코딩 구현

public class RecatangleArea {

	public static void main(String[] args) {

		double width = 12.5;
		double height = 13.1;
		double area = width * height ;
		
		System.out.println("가로 : " + width);
		System.out.println("세로 : " + height);
		System.out.println("넓이 : " + area);

	}

}

문제2)

  • 클래스 : TriangleArea2
    삼각형 넓이를 구하는 프로그램 짜시오

  • 가로가 10 세로가 10 만약 넓이가 20 보다 크면
    true 가 나오록 하시오.
    ▼ 출력 결과 ▼
    20보다 큽니까?
    true

✅ 코딩 구현

public class TriangleArea2 {

	public static void main(String[] args) {
		
		double width = 10;
		double height = 10;
		double area = (width * height)/2 ;
		
		boolean bool = area > 20;
        
		System.out.println("삼각형의 넓이가 20보다 큽니까?");
		System.out.println(bool);
		
	}

}

문제3)

  • 반지름이 10인 원의 넓이를 구하시오.
    ▼ 출력 결과 ▼
    반지름 : 10 넓이 314.0
    넓이가 100 미만 입니까?
    False

✅ 소스 구현


public class Circle {

	public static void main(String[] args) {
		
		
		final double PI = 3.14;
		double radius = 10;
		double area = radius * radius * PI ;
		
		boolean a = area<100;
		
		System.out.println("반지름:"+ radius +" "+ "넓이:"+ area);
		System.out.println("넓이가 100미만 입니까?");
		System.out.println(a);
	}

}

9. 아래의 표기법에 대하여 설명하시오.

① camelCase (캐멀, 낙타 표기법)

  • 띄어쓰기 대신 대문자로 단어를 구분하는 표기 방식
  • 각 단어의 첫 단어를 대문자로 표기하고 붙여 쓰되, 맨 처음 단어는 소문자로 표기함
  • 예시: backgroundColor, typeName, iPhone

② snake_case (스네이크 표기법)

  • 단어를 밑줄 문자(_)로 구분하는 표기법
  • 예시: background_color, type_name

10. -5의 컴퓨터에서 2진수 값을 나타내시오.

① 5의 2진수 표현 (4bit 기준)
0101

② 5의 2진수 보수 값 (4bit 기준)
1010

③ 5의 2진수 보수 값끝에 1 추가 (4bit 기준)
1011

④ 결과 (4bit 기준) : (-5의 2진수값):1011


11. 32 비트 시스템에서 최대 사용 할수 있는 메모리 양과 그이유는?

  • 시스템에 장착된 메모리를 사용하기 위해서는 모든 메모리 공간에 대한 주소 정보가 필요하다.
  • 32bit 시스템에서는 레지스터를 사용할 때, 32bit로 한다는 것
  • 1bit 당 2가지의 다른 경우를 표현할 수 있다.
  • 즉, 32bit의 공간이 있다면, 2^32 개를 표현할 수 있는 것이다.
  • 2^32* 1Byte(주소의 기본 단위) = 4GB

12. 형변환(casting)에 대하여 예습하시오.

profile
코딩 스터디 정리

0개의 댓글