비트를 쪼개는 개발자

allen321@naver.com

CS(Computer Science) 3

부동 소수점(floating point) 이란?

부동 소수점 이란? 부동 소수점은 실수(소수점이 있는 숫자)를 표현 및 연산 하기 위해서 사용하는 실수를 표현하는 방식이다.부동 소수점을 사용하면 상당히 폭넓은 숫자를 표현할 수 있다.부동 소수점은 IEEE 754* 표준에 따라 숫자를 가수, 지수, 부호로 나누어 저장한다.부동 소수점 이외에도 고정 소수점과 같은 표현 방식도 있다. IEEE 754란? : 전기전자공학자협회(Institute of Electrical and Electronics Engineers, IEEE)라는 전기전자공학 전문가들의 국제조직에서 지정한 부동 소수점 관련 표준 포맷을 뜻한다.  부동 소수점의 구성 요소 부동 소수점은 크게 부호(Sign), 지수(Exponent), 그리고 가수(Mantissa)로 구성된다.  1. 부호 (S..

메모리 정렬과 패딩

메모리 정렬(Memory Alignment) 이란? 메모리 정렬은 컴퓨터가 데이터를 효과적으로 저장하고 여기에 접근하는 방식을 뜻한다.데이터가 CPU에 저장될 때 컴퓨터가 더 빠르게 접근할 수 있도록 메모리 주소를 특정 기준에 따라 배치한다.핵심 키워드로는 정렬, 구조체 정렬, 패딩 등이 있다.   기본 정렬 규칙 데이터 타입의 크기에 따라 메모리 주소가 정렬된다.데이터의 시작 주소는 해당 데이터 크기의 배수여야 한다.ex) int의 경우는 4바이트 이기 때문에 4의 배수의 주소에 정렬되어야 한다.(0,4,8,12...)ex) double의 경우는 8바이트 이기 때문에 8의 배수의 주소에 정렬되어야 한다.(0,8,16,32...)구조체 내에서의 각 멤버들은 자신의 데이터 크기에 맞게 정렬된다.구조체 전체..

객체 지향 프로그래밍(OOP)이란?

객체 지향 프로그래밍을 이해하기 위해서는, 먼저 근간이 되는 절차 지향 프로그래밍과, 이를 대표하는 초창기 컴퓨터 언어인 C언어를 살펴보는 것이 중요하다.  객체 지향 프로그래밍은 절차 지향 프로그래밍으로 부터 탄생했으며, 절차 지향 프로그래밍의 여러 단점을 개선하고 객체지향 프로그래밍만의 장점과 특징을 가지고 있다. 이를 설명하기 위해서 절차 지향 프로그래밍부터 단계적으로 살펴보자.  절차 지향 프로그래밍 (POP - Procedural Oriented Programming)이란?     절차 지향 프로그래밍은 문제를 해결하기 위해 순차적으로 작업을 수행하는 방식에 기반한 프로그래밍 패러다임이다. 프로그램의 실행 절차(Procedure)에 초점을 맞춘 프로그래밍 패러다임인 만큼 함수를 중심으로 구성되며..