KDT 풀스택 공식 1일차: JAVA 정수, 실수, 문자 기초

jk·2023년 12월 29일
0

kdt 풀스택

목록 보기
2/127

1. int 형 범위는 어떻게 되는가?

  • -2³¹ ~ (2³¹ - 1)
  • 대략적인 값은 -21억에서 +21억 정도라고 볼 수 있습니다.



2. int num; 을 메모리로 설명해 보세요.

  • 먼저 int 이기 때문에 4 bytes 가 할당됩니다. 1 byte 가 8 bits 이니 4 bytes 는 32 bits 의 메모리가 할당됩니다. 즉 32칸의 2진수 메모리 공간에서 첫번째 공간에서는 음수인지 양수인지를 구분하고 나머지 31개의 공간을 2진수를 표현하기 위한 공간으로 사용해서 음수로는 -2³¹ 까지 양수로는 (2³¹ - 1) 까지의 값을 담을 수 있습니다. 하지만 음수를 표현하는 2진수는 컴퓨터가 이해하기 쉬운 방식으로 저장되기 때문에 양수에서의 규칙과 같지 않습니다.



3. 키워드(예약어)란 무엇인가?

  • 기본적인 기능을 작성하기 위해 언어 자체에서 미리 만들어둔 단어들입니다. Java 에서의 키워드는 아직 몇 개 배우지 않았는데 일단은 어제 배운 boolean, char, byte, short, int, long, float, double 같은 데이터형들이 있습니다.



4. 2의 보수법이란?

  • 앞서 2번에서 다뤘던 int 에서 음수를 저장하는 방식을 설명하기 위한 규칙입니다. 그 음수에 (-1)을 곱해서 2진법의 양수로 표현한 값과 더했을때 2³¹ 이 나와야 컴퓨터가 음수와 양수를 동시에 계산하기 편하기 때문에 2³¹ 에서 그 음수에 (-1)을 곱한 값을 뺀 값을 2진수로 표현하고 그것의 첫번째 자리에 음수라는 표시로 1 숫자를 넣으면 그것이 int 에서의 음수값이 됩니다. 설명이 조잡합니다. 5번에서 다시 한번 설명하겠습니다.



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

  • 먼저 java 에서 음의 정수를 표현하기 위한 첫번째 숫자는 1입니다.
  • i 를 음의 정수라고 할 때
    -i + i = 0
    이므로 컴퓨터가 연산을 쉽게 하기 위해서 i 에 (-1)을 곱해서 부호를 바꾼 값과 그 음의 정수를 합한 값이 0이 나와야 합니다.
  • 따라서
    i = 0 - (-1) * i
    를 2진법으로 표현합니다. java 는 오버플로가 기본적용되기 때문에 여기서 0 대신에 그 데이터형의 최대값에 1을 더한 값을 써도 무방합니다. 예를 들어 int 의 경우에는
    i = 2³¹ - (-1) * i
    이나 정수 n 까지 써서
    i = 2³¹ * n - (-1) * i
    라고 해도 상관없습니다.
  • 이 결과값을 시각적으로 더 쉽게 구현하는 방법도 있습니다. 2진법으로 모든 자리의 수를 반전시키고 1을 더해주면 같은 값이 나옵니다.



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

  • (-5)를 예시로 들어보겠습니다. 먼저 (-5)에 (-1)을 곱해서 양수로 만들면 5입니다.
  • 그리고 그 5를 int 의 2진수로 표현하면 다음과 같습니다.
  • 00000000000000000000000000000101
  • 2³¹ 에서 이 값을 빼주면 다음과 같습니다.
  • 01111111111111111111111111111011
  • 여기서 음의 정수로 바꾸기 위해 첫번째 숫자를 1로 바꿔줍니다.
  • 11111111111111111111111111111011



7. 실수에서 오차가 생기는 원인은 무엇인가?

  • 무한한 실수를 유한한 컴퓨터에게 입력시키려다 보니까 정확한 값을 넣을 수가 없습니다. 그래서 태생적인 문제로 오차가 생기게 됩니다.



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

  • 고정소수법: 고정소수점을 이용해서 실수를 표현하는 방법입니다. 실생활에서 주로 쓰는 방법으로
    409.6
    같은 식으로 표현합니다.
  • 부동소수법: 부동소수점을 이용해서 실수를 표현하는 방법입니다.
    4.096 * 10²
    같은 식으로 표현합니다.



9. 문자가 뿌려지는 원리에 대하여 설명하시오.

  • java 에서는 문자마다 할당된 유니코드값이 있습니다. 컴퓨터는 그 값을 기억해두고 출력합니다.



10. 아스키 코드란 무엇인가요?

  • 미국표준 문자값입니다. 오래됐기 때문에 없는 문자들이 많습니다.



profile
Brave but clumsy

0개의 댓글