반응형

전체 647

[조합논리회로] 드모르간의 법칙, 함수의 보수, 쌍대성, 일치이론

드모르간법칙은 부울식에서 보수를 얻기위해 사용한다. 다음은 or연산에 대한 드모르간 법칙이다. 드모르간 법칙 보수에 관한 내용은 아래 글을 참고 하세요. 2014/02/23 - [컴퓨터구조] - 보수의 개념과 컴퓨터연산에서의 활용 2진연산에서 1의보수는 0, 0의 보수는 1로 NOT연산을 한 것과 같다. 표현식은 위에 바(bar)를 사용하고 이는 그 식의 보수를 구하는 것과 같다. 다음은 AND연산에 대한 드모르간 법칙이다. 위 두 식은 서로 쌍대성이다. 쌍대성은 아래 글을 참고 하세요. 2015/04/29 - [컴퓨터구조] - [조합논리회로] 논리게이트,기본 논리회로 진리표, 부울대수 표현의 쌍대성에서 바(bar)의 변화는 없다는 것에 주의하자. 이런 법칙들을 이용해서 부울식을 간단하게 할 수 있다. ..

컴퓨터구조 2015.05.08

자료구조 -트리(Tree) C언어

트리의 특징 2차원적 구조를 가짐. 이에 반해 자료구조 배열, 연결리스트, 스택, 큐...등은 1차원 선형적 구조를 갖음. 2014/02/28 - [프로그래밍/C언어] - 동적배열 자료구조의 시작 2014/03/20 - [프로그래밍/C언어] - 자료구조 - 연결리스트[linked list] C언어 2014/03/21 - [프로그래밍/C언어] - 자료구조 스택(stack) C언어 2014/03/22 - [프로그래밍/C언어] - 자료구조 큐(Queue) C언어 용어정리 차수 - 자식 노드의 개수 잎 - 자식 노드가 0인 노드 서브트리(sub Tree) - 트리 내부의 작은 트리 포리스트(Forest) - 트리가 여러 개 모인 것. 레벨(level) - 루트에서 그 노드까지의 거리를 말함.(루트레벨 :1) 높..

부모클래스의 멤버변수 초기화

자식 클래스에서 부모의 멤버변수를 초기화하여 사용하고 싶을 경우는 멤버 초기화리스트(멤버이니셜라이져)의 사용이 필수다. 초기화하는 방법에 앞서, 상속에 관한 이해가 필요하다. 클래스는 그 클래스의 속성을 표현하는 데이터들의 집합이다. 함수는 그 데이타에 대한 작업을 하는 도구다. 클래스의 객체를 생성하여 객체가 차지하는 메모리 공간의 크기를 재보면 멤버변수의 사이즈의 합과 같다. 함수가 얼마나 많든지 간에 객체의 크기는 멤버변수만의 총 사이즈다. 2015/04/28 - [프로그래밍/c++] - [C++]멤버이니셜라이져(멤버초기화리스트) 다음은 부모클래스와 상속관계에 있는 클래스의 객체를 생성하여 그 크기를 출력하는 코드다. 너무 당연한 결과다. circle의 멤버변수는 int형 num 하나로 4byte,..

프로그래밍/cpp 2015.04.29

[조합논리회로] 논리게이트,기본 논리회로 진리표, 부울대수

논리 게이트(logic gate) 디지털회로는 2진정보를 다루는 회로다. 디지털 회로의 기본이 되는 회로를 논리 게이트(logic gate)라고 한다. 디지털 회로는 트랜지스터(transistor)와 직접회로(intergrated circuit)의 연결들로 구성된다. 다시 말해 이런 회로들의 기본이 되는 회로가 논리게이트다. 2진 논리 2진 논리는 2개의 값만 취하는 2진 변수, 다시 말해 0과 1만 취하는 변수에 관한 관한 수학적 논리 연산에 관한 논리를 말한다. 기본적인 2진 논리 연산은 AND, OR, NOT 연산이다. AND는 곱, OR는 합, NOT은 부정을 뜻한다. 연산 기호는 일반 산술 연산 기호와 같다. 연산의 유사성은 있지만 같지는 않다. 2진 논리는 0 아니면 1만을 다루기 때문이다. ..

컴퓨터구조 2015.04.29

[C++]멤버이니셜라이져(멤버초기화리스트)

멤버 초기화 리스트(Mmber Initialization List)라고한다. 생성자의 역할인 멤버변수의 초기화를 대신할 수 있다. 보통 멤버 이니셜라이져라고 부르는데 꼭 사용해야 하는 경우는 4가지가 있다. 1. 상수 멤버의 초기화 (C++11의 경우는 상수멤버변수 선언과 동시에 그냥 초기할 수 있음.) 2. 레퍼런스 멤버 초기화 3. 객체멤버의 초기화 4. 부모클래스의 멤버변수초기화 1, 2, 3번은 비슷한 맥락에서 이해될 수 있다. 4번의 경우는 상속과 객체생성 메커니즘에 대해 잘 이해해야 이해할 수 있다. 2015/04/29 - [프로그래밍/c++] - 부모클래스의 멤버변수 초기화 멤버이니셜라이져 문법 아래는 일반적인 멤버 초기화 방법이다. 아래는 멤버 이니셜라이저 문법을 사용하였다. 두 경우 결과..

프로그래밍/cpp 2015.04.28

[C++11]바인더, std::bind, std::function, std::spaceholder::_1, bind1st, bind2st

바인더는 STL 함수 어댑터다. std::bind는 C++11에서 표준으로 제공하는 바인더로 기존의 bind1st, bind2st 보다 다양한 활용을 할 수 있는 어댑터다. 기존의 bind1st, bind2st는 두 개의 파라미터를 갖는 객체함수의 파라미터를 고정시켜 주는데, bind1st는 첫 번째 파라미터를 bind2st는 두 번째 파라미터에 고정값을 준다. 일반적으로 bind1st와 bind2st는 STL 이항 함수자(함수객체)를 단항으로 바꾸는데 쓰인다. 다시말해 들어 비교를 하는 STL 함수 객체(함수자) equal_to, not_equal_to, less, greater,.....등을 단항함수로 만든다. 위 코드를 분석해보자. bind1st는 이항함수자를 단항함수자로 만들어 반환한다. bind..

프로그래밍/cpp 2015.04.25

PDF 변환 프로그램(CutePDF) and PDF 변환 사이트

한글문서나 워드문서 또는 기타 포맷의 문서를 pdf 파일로 변환하는 방법에 관한 글입니다. pdf 변환 프로그램에는 여러가지가 있고, 유료와 무료가 있죠. 우리가 관심 있는 무료 pdf 변환 프로그램을 사용하시려면, 스폰서 프로그램이나 광고 등등, 지저분하게 깔리는 게 많으실 수 있습니다. 이런 지저분한 것들을 배제하고 깔끔하게 무료 pdf 변환 프로그램을 사용해보도록 하죠. 지금 쓰는 글은 무료 pdf 변환 프로그램에 관한 글과 효율적으로 설치하는 방법에 관한 글입니다. pdf 변환 프로그램은 워낙 많고 사용법은 비슷합니다. 1. CutePdf(http://www.cutepdf.com/) 위 사이트를 엽니다. Free Download (1.9MB) 를 클릭하여 다운로드를 받습니다. 다운로드 파일을 실행..

[서평] 뇌를 자극하는 c++ STL

'머리 속에 통째로 넣어 드리겠습니다.' 라는 문구의 뇌를 자극하는 시리즈의 C++ STL은 이전부터 갖고 있던 책, 쉽게 손에 잡혀 지지 않았습니다. 600 페이지 정도의 분량(뭐 그렇게 많은 분량은 아니지만, 시간에 쫓기다 보니)이라... STL 관련 공부는 소스 분석 중 그때 그때 필요한 부분만 발췌해서 공부해 왔던 터라 정리도 필요하고, 요즘 들어 STL 관련 문법에서 막히는 부분이 간혹 생겨서 읽기 시작했습니다. STL을 처음 접하시는 분은 만만한 책은 아니라고 생각합니다. 뭐 STL이라는 주제 자체가 처음 접하는 사람들에게는 만만한 주제가 아니기 때문이죠. 하지만 이 책은 처음부터 이해해가며 읽어가면 STL에 대한 공부를 편하게 할 수 있게 구성되어 있습니다. 과장하자면 소설 읽듯이 쉽게 읽어..

관심사/도서 2015.04.23

[c언어] 홀수 마방진 풀이법(알고리즘)

마방진의 풀이 여러가지가 있다. 대표적인 풀이방법은 홀수차와 짝수차에 따라 다르고 짝수차는 4의 배수와 아닌 수에 따라 달라진다. 예를들어 3차 마방진은 3x3의 정방행렬형태다. 가장 간단한 형태는 홀수 마방진이고, 짝수차 중 4의 배수가 아닌 마방진 형태가 가장 복잡하다. 여기서는 간단히 홀수 마방진을 푸는 방법과 알고리즘을 c언어로 작성해 보겠다. 마방진의 정의 우리에게 친숙한 김홍도의 작품 씨름이다. 이 그림에는 마방진의 원리가 숨어있다. x자 마방진이라고 하는 이 마방진은 대각선에 늘어선 사람의 합이 12명이 된다. 우리가 흔히 말하는 마방진은 규격은 다음과 같다. N차 마방진의 경우 1부터 NxN까지의 자연수를 NxN칸에 나열 했을 경우 가로와 세로 대각선의 어느 방향으로도 수의 합이 같아야 한..

메모리 구조,c언어를 이해하기 위한(텍스트,데이타,bss,힙,스택)

C언어를 잘하고 싶다면 메모리 구조에 대한 이해는 꼭 필요합니다. 물론 다른 언어도 마찬가지지만 메모리에 대한 조작이 비교적 많은 C언어는 메모리 구조는 바로 언어에 대한 이해도를 높여줍니다. C언어로 짠 프로그램이 메모리에 어떻게 로드 되는지 알아보겠습니다. 다음 코드는 주의 깊게 안보셔도 됩니다. 완전 쓸데없는 노가다입니다. 흑 ㅠ 코드를 분석할 필요는 없고, 결과를 보려고 만든 코드니 결과만 알면 됩니다. 변수들의 선언 방식과 위치에 따라서 주소값이 어떤 규칙성이 보일 듯 하죠? 4로 시작하는 주소가 많고, 2,6으로 시작하는 주소도 보이네요. 대충 3개 정도로 나뉘어 보입니다. 실제로는 5개의 영역입니다. 일반적으로 텍스트 영역이 낮은 주소-> 스택영역으로 갈수록 높은주소, 스택을 제외한 나머지 ..

반응형