정보처리기사 필기

시험 직전 요약장

판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.

이론 목록

언어 실행 방식·자료형·연산·제어 흐름

원래 이론 →

헷갈리는 개념

항목CJavaPython
정수 폭short, int, long 등의 정확한 비트 수는 구현에 따라 달라질 수 있음byte 8비트, short 16비트, int 32비트, long 64비트int는 언어 수준에서 고정 폭 정수형이 아니며 필요한 만큼 확장됨
부호char의 부호 여부는 구현에 따라 달라질 수 있음byte·short·int·long은 부호 있는 2의 보수, char는 16비트 부호 없는 UTF-16 코드 단위별도의 고정 폭 부호 없는 기본 정수형 없음
넘침부호 없는 정수는 형의 범위에 따라 모듈러 연산, 부호 있는 넘침은 정의되지 않은 동작이 될 수 있음정수 연산은 고정 폭 2의 보수 결과로 상위 비트가 버려질 수 있음정수 자체는 고정 폭 넘침 대신 더 큰 값을 표현하며 메모리 한계의 영향을 받음

추가로 기억할 점은 다음과 같다.

  • C에서 sizeof(char) == 1은 항상 참이지만, C의 1바이트가 반드시 8비트라는 뜻은 아니다.
  • Java의 boolean은 true와 false만 가지며, 언어 명세가 변수 하나의 저장 크기를 1바이트로 정하지 않는다.
  • Java의 참조형 변수는 객체 자체가 아니라 객체를 가리키는 참조값 또는 null을 가진다.
  • Python에서 같은 이름에 정수 객체를 결합한 뒤 문자열 객체를 다시 결합할 수 있다. 이름의 결합 대상이 바뀐 것이지 객체의 형이 바뀐 것은 아니다.
PYTHON
value = 10          # value는 int 객체를 참조
value = "ten"       # 이제 str 객체를 참조
이 부분의 원문 →

대표 계산·예제

다음 Java 코드는 32비트 int 값 300을 8비트 byte로 좁힌다. 하위 8비트만 남아 결과는 44가 된다.

JAVA
public class Main {
    public static void main(String[] args) {
        byte value = (byte) 300;
        System.out.println(value);
    }
}

실행 결과:

예시·텍스트
44

명시적 캐스트를 사용했다는 사실은 “안전하다”는 보장이 아니다. 개발자가 정보 손실 가능성을 받아들였다는 뜻에 가깝다.

이 부분의 원문 →

내 최근 연습 오답

현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.

학습 기록 →

오답 기록을 확인하고 있습니다.