정보처리기사 필기
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
언어 실행 방식·자료형·연산·제어 흐름
원래 이론 →헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 항목 | C | Java | Python |
|---|---|---|---|
| 정수 폭 | 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좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
value = 10 # value는 int 객체를 참조
value = "ten" # 이제 str 객체를 참조
대표 계산·예제
다음 Java 코드는 32비트 int 값 300을 8비트 byte로 좁힌다. 하위 8비트만 남아 결과는 44가 된다.
JAVA좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
public class Main {
public static void main(String[] args) {
byte value = (byte) 300;
System.out.println(value);
}
}
실행 결과:
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
44
명시적 캐스트를 사용했다는 사실은 “안전하다”는 보장이 아니다. 개발자가 정보 손실 가능성을 받아들였다는 뜻에 가깝다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.