본문 바로가기

CS 기초22

직렬화(Serialize)와 역직렬화(Deserialize)란? 직렬화(Serialize) 프로그램의 object에 담긴 데이터를 어떤 외부 파일에 write 및 전송하는 것 역직렬화(Deserialize) 어떤 외부 파일의 데이터를 프로그램 내의 object로 read 해오는 것 + 보충 설명 네트워크 통신에서 객체 또는 클래스 직렬화의 의미는 다음과 같다. 상대 호스트와 데이터를 주고 받을 때 데이터의 종류는 int, double 과 같은 기본 타입일 수도 있지만, 포인터 타입을 가질 수도 있다. 또한 바이트가 연속적이지 않은 NON-POD 타입일 수 있다.(i.e. 가상 함수 또는 vector를 멤버로 가지는 클래스 타입 등) 기본 타입은 그 값 그대로 유효하지만 포인터 타입은 그렇지 않다. 포인터 타입은 어떤 유효한 값에 대한 주소를 가지는데, 이는 자신의 컴.. 2020. 2. 29.
소수점 이진수로 변환하는 법 | 소수점 이진법 ex) 68.625 -> ??? 1. 정수부(68)는 그대로 이진수로 변환한다. 64 + 4 -> 100 0100 2. 소수부(0.625)만 가져온다. 0.625 3. 소수부에 2를 곱하는데 그 결과가 1로 떨어질 때까지 혹은 똑같은 소수점이 나올 때까지 반복한다. 0.625 x 2 = 1.250 (정수부는 버린다) 0.250 x 2 = 0.500 0.500 x 2 = 1.000 4. 위에서부터 차례로 가져온다. result: 101 5. 정수부와 소수부를 합친다. 1000100.101 ex) 125.3 64 + 32 + 16 + 8 + 4 + 1 -> 111 1101 0.3 x 2 = 0.6 0.6 x 2 = 1.2 0.2 x 2 = 0.4 0.4 x 2 = 0.8 0.8 x 2 = 1.6 (첫번째 결.. 2020. 2. 25.
소수(십진수)를 IEEE 754 (32bit 단정도) 부동 소수점 방식으로 나타내기. 프로그래밍에서 많이 사용되는 부동 소수점이 표현되는 방식에 대해 알아보겠습니다. 우선 부동 소수점은 부호부, 지수부, 가수부로 나뉩니다. 32비트 부호부: 최상위 1비트 지수부: 8비트 가수부: 23비트 -118.625라는 수를 부동소수점 방식으로 변환해보겠습니다. 1. 먼저 음수이므로 최상위 비트를 1로 설정합니다. (양수일 경우 0) 여기선 가독성을 위해 4bit 마다 공백을 표시하겠습니다. 2. 절댓값 118.625를 이진법으로 변환합니다. (소수점 이진법으로 표기하는 법) 118.625 -> 1110 110.101 3. 소수점을 왼쪽으로 이동시켜 정수부가 한자리가 되도록 합니다. 1110 110.101 -> 1.1101 1010 1 4. 3번에서 이동시킨 자릿수(6)만큼을 2의 지수로 사용하여 곱.. 2020. 2. 25.
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리 https://www.slideshare.net/sunnykwak90/2-43573340 프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리 프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리 www.slideshare.net 정리 예정 2020. 2. 13.
프로그래머가 알아야 하는 메모리 관리 기법 https://www.slideshare.net/sunnykwak90/ss-43933481 프로그래머가 알아야 하는 메모리 관리 기법 프로그래머가 알아야 하는 메모리 관리 기법 Sunny Kwak (sunnykwak@daum.net) www.slideshare.net 정리 예정 2020. 2. 13.
[OS] 운영체제의 구조와 역할을 간단하게 알아보자 개인적으로 학습하는 내용이라 틀린 내용이 있을 수 있습니다. 참고 도서 [개념 이해를 위한 운영체제] [운영체제란?] 운영체제(Operating System, OS)를 딱 한 문장으로 표현하긴 어렵다. 관점에 따라 다를 수 있으며 기능도 여러 가지이기 때문이다. 일단 운영체제는 일종의 시스템이다. 시스템은 "어떤 주어진 목적을 달성하기 위해 여러 개의 구성 요소들이 유기적으로 결합된 집합체" 를 의미한다. 운영체제의 목적은 두 가지 관점에서 설명할 수 있다. 하나는 사용자의 입장, 하나는 시스템(컴퓨터)의 입장. 사실 우리가 평소에 컴퓨터를 사용하면서 컴퓨터의 입장에서 운영체제를 생각해본 적은 대부분 없을 것이다. 하지만 컴퓨터를 배우기 위해선 컴퓨터의 입장에서 생각해야 한다. 예를 들어 키보드 또는 마.. 2019. 11. 27.