본문 바로가기

보고서/10월 업무일지

10월 1일 업무일지

C 2장


메모리의 구성

컴퓨터가 한번에 처리할 수 있는 메모리의 크기 : 워드(word)
그 밖에 비트(bit), 바이트(byte) 등이 있다.

       
8비트  8비트  8비트  8비트 
32비트는 8비트 4개 로 구성

우리가 쓰는 ip 주소 한자리는 8bit 로 되어있다. 0~255 까지 표시
현재의 ip주소형식을 IPv4 이며 4바이트로 되어있다. 약 43억 정도의 주소를 가진다.
앞으로는 IPv6 형식으로 4바이트×4 로 되어 있으며, 43억×4 의 개수를 가질수 있다.
*DNS : 도메인 네임 서비스 라고 하며 우리가 쓰는 문자로된 주소(ex google.com)을 숫자(ip 주소)로 변환하는 서비스이다.

메모리의 공간은 주소를 가지고 있다. 프로그램에서는 메모리의 주소대신 변수를 이용하여 메모리에 접근한다. 변수는 메모리의 주소대신 사용하는 메모리 공간의 이름이기 때문이다. 사용자가 변수를 선언하면 컴라일러는 그 변수를 위해서 일정공간을 할당하며, 프로그램은 변수를 이용하여 그 공간에 접근한다. 그러나 프로그램에서는 필요할 경우 메모리의 주소를 이용하여 특정한 위치의 메모리에 접근할 수도 있다. 이 방식을 포인트 변수 라고 한다.


토큰

토큰은 프로그램내의 어휘적인 최소단위를 토큰이라고 부른다.
int main()
{
  llll;
}

위에서 int, main, (, ), {, }, ; 각각을 토큰이라고 부른다.

C언어의 토큰에는 키워드, 사용자정의 식별자, 연산자, 상수, 보조문자 등이 있다. 키워드는 예약어라고도 하며 C 프로그램이 갖추어야 할 구조를 형성하는 데 사용되는 단어들로, C 언어 내에서 특정한 의미가 미리 주어져서 사용자가 다른 목적으로 사용할 수 없다.
식별자(또는 사용자 정의 식별자)는 변수나 함수의 이름처럼 프로그램 내에서 사용자가 필요에 따라 만들어 사용하는 토큰들을 말한다. 식별자를 만드는 방법은 다음과 같다.

1)첫 글자는 영어의 알파벳이나 밑줄(_)이 올 수 있다.
2)그 뒤에는 영어, 숫자, 밑줄이 올 수 있다.
3)하나의 식별자는 보통 32문자까지 허용된다. - 컴파일러 마다 다르다, 현재는 보통 250자 내외

C언어에서는 소문자와 대문자가 다르게 취급되기 때문에 식별자 Number 와 number 는 다르다.
키워드는 식별자로 사용될 수 없고, 표준 라이브러리 함수의 명칭도 사용하지 않는 것을 원칙으로 한다. #define, #include 등과 같은 단어들은 키워드는 아니지만 특별히 취급되므로 식별자로는 사용할 수 없다.
식별자를 만들 때는 그 역할을 잘 반영할 수 있게 이름을 잘 정하는 것이 중요하다.
int iAve
char cNum 
등등 기능을 확실하게 알 수 있게 만드는 것이 좋다.


자료형

#include
 <stdio.h>

int main()
{
  char cNum;  //문자형으로 변수를 선언했다
  int iNum;   //정수형으로 변수 선언
  short isNum; //정수형으로 변수 선언
  
//char(1byte)≤short(2byte)≤int(4byte)≤long(4,8byte)
  
  cNum=100;
  iNum=65;
  isNum=0x8000; // 16진수로 8 0 0 0 입력   정수의 최대값이 출력
  
  printf("%d\n",cNum);
  cNum='A';
  printf("%d\n",cNum); //A 문자에 해당하는 아스키코드 65 가 출력
  cNum='Z';
  printf("%d\n",cNum);
  printf("%d\n",'Z'+1-'A');
  printf("%d\n",'z'+1-'a');
  printf("%c\n",65);
  cNum='0';
  printf("%d\n",cNum);
  
  printf("%c\n",iNum);
  
  printf("%d\n",isNum);
  
  isNum=0x8000-1;  //정수의 최소값이 출력  
  printf("%d\n",isNum);
  
  return 0;
}



변수가 int 형일 경우 최소값이나 최대값의 범위를 넘어서는 값을 가지면 오류가 발생한다.

 





오후

가산기(adder)
-2개의 2진수를 더할 수 있는 덧셈기를 구성하는 기본요소.




반가산기
S = A'B+AB'
  =


C(out) = AㆍB

전가산기
S=A'B'C+A'BC'+AB'C'+ABC
 =C(A'B'+AB) + C'(A'B+AB')
 =형태가 CX' + C'X 이므로 XOR이다
(A'B'+AB)' = (A'B+AB') 를 보여주면 되므로
(A'B'+AB)' 를 계산하면 (A'B+AB') 가 맞으므로

위의식을 정리하면
 
가 된다.

C(out)  =  A'BC+AB'C+ABC'+AB

위 식에서 ABC = ABC+ABC+ABC+ABC......을 이용해서
C(out)  =  A'BC+AB'C+ABC'+ABC+ABC+ABC 의 식으로 만든후 서로 묶어주면

C(out)  = BC+AC+AB 
가 된다.






'보고서 > 10월 업무일지' 카테고리의 다른 글

10월 8일 업무일지  (0) 2010.10.08
10월 7일 업무일지  (0) 2010.10.07
10월 6일 업무일지  (0) 2010.10.06
10월 5일 업무일지  (0) 2010.10.05
10월 4일 업무일지  (0) 2010.10.04