전체 글

전체 글

    [수학] 1/0은 왜 안되나

    많은 사람들이 나눗셈을 할 때 0으로 나눌 수 없다는 말을 들었을 것이다. 0으로 나눌 수 없는 이유는 모든 선생님이 가르쳐 주었을 텐데, 여전히 0으로 나누는 것이 왜 안 된다는 건지 모르겠다는 말을 많이 한다. 다른 수학 문제에 비하면 0으로 나누는 것을 도무지 모르겠다는 사람의 수는 그래도 적은 편이지만, 그래도 끊임없이 제기되는 문제인 것만은 분명하다. 한번 0으로 나눌 수 없는 이유를 짚어보자. 0으로 나누기,한번 해보자 두 실수가 주어지면 나눗셈을 하는 방법은 초등학교 고학년이 되면 배우게 된다. 예를 들어 3.764를 1.9로 나누려고 하면, 아래 그림처럼 나눠가기 시작한다. 이런 나눗셈 방법을 ‘긴 나눗셈’ 한자로는 장제법(長除法) 영어로는 long division이라고 부른다. 이제 같은..

    간편한 vi 설정

    set number - vi시 번호 표시 set autoindent - 자동들여쓰기 set cindent - c언어들여쓰기 (다른 IDE와 비슷하게 들여쓰기가 됩니다. 굉장히 편리합니다. set tabstop=4 - 탭간격을 4로 하겠다는 건데, default는 8입니다. 8은 너무 간격이 커서 코딩이 길어지면 불편한점이 있네요. set shiftwidth=4 - 들여쓰기시 탭간격, tabstop값이랑 같이해주는게 좋습니다. map :!gcc % -o EXE%

    tail, head

    tail, head

    head와 tail은 표준출력장치에 출력할 시 파일의 제일 위의 줄과 제일 아래로부터의 문달 줄을 맞게 출력해 주는 명령어이다. 아래는 cat 명령어를 사용하여 test란 파일을 생성하였는데 그안에는 1~15까지의 수가 있다. 기본적인 tail 명령어는 아래에서 10줄 head도 마찬가지로 위에서 10줄이다. 그 외 옵션을 이용하여 원하는 줄 길이만큼 출력해서 볼 수 있다.

    교차 컴파일러(Cross compiler)

    교차 컴파일러(Cross compiler)

    호스트에서 개발한 프로그램이 타깃에서도 실행되기 위해선 컴파일러가 실행되는 환경과 생선된 실행파일이 실행되는 환경이 다른 문제가 발생한다. 그러므로 타깃에도 실행될 수 있는 컴파일러가 필요하다. 그것이 바로 교차컴파일러이다. 예를 들어 PC에서 제작한 것을 다른 임베디드 보드 위에 올릴때 그 보드에 맞는 기계어를 가진 컴파일러가 필요하다는 것이다.

    부트로더 (Boot looader)

    부트로더란? 운영체제가 실행되기 전에 미리 실행되어 필요한 모든 작업을 수행하고 운영체제를 실행하기 위한 프로그램으로 임베디드에서는 최초 타깃에는 메모리에 아무런 정보도 없기에 최초 부트로더를 장착하는 것 부터 시작한다. 이를 플래시 메모리에 저장한다. 위치하는 곳은 시스템 메모리의 물리주소 0 번지 부터거나, ROM, FLASH ROM, SRAM 등 정적인 메모리에 위치하게 된다. 부트로더 역할 1. 하드웨어 초기화 -최초 전원 켜졌을 시 ROM에 있는 부트로더는 RAM으로 옮겨져 실행되고, 메모리, 통신, 디바이스 등의 기본적인 하드웨어 초기화 2.응용 프로그램 다운로드 -호스트에서 개발된 프로그램을 타깃의 메모리로 다운로드 3. 커널 로더 로딩 및 실행 4. 메모리 초기화 5. 커널과 램 디스크 적..

    grep

    grep

    grep 명령어는 하나 또는 그 이상의 파일 안에서 특정한 패턴을 찾아 표준 출력 장치로 출력해 주는 역할을 한다. 먼저 ls란 명령어를 확인가능한 man 명령어의 출력을 파이프를 통하여 grep명령어의 입력으로 하는데 이때 ls란 철자를 가진 모든 줄을 출력한다. 위와 동일하되, -i 옵션은 ls의 대소문자 구별않고 모두 찾기 원할때 사용하는 옵션이다. -n 옵션은 행의 줄번호를 표시할때 사용한다.