- 브레이크 포인트 설정한다.
- F5 키를 누른다.
- F10키를 누르면 노란색 화살표가 가르키는 소스코드를 실행한다.
- 위 화면에서 오른쪽창은 자동 와치창이고, 왼쪽창은 수동 와치창이다
- 수동 와치창에 변수명을 입력하면 현재 변수안에 있는 값을 보여준다.
8비트 computer
[심볼 테이블 : 예]
Type |
Name |
Address |
Int |
Num1 |
100 |
Int |
Num2 |
200 |
동작순서
Printf ("%08X",a); -> 16진수 8자리, 빈자리는 0 채운다.
[실제 심볼 테이블]
Type |
Name |
Address-linux |
Address-windows |
int |
Num1 |
BFFFF878 |
0012FF7C |
int |
Num2 |
BFFFF874 |
0012FF78 |
Int | |
signed int |
unsigned int |
short int |
unsigned short int |
각 컴퓨터마다 int,short,long형에 할당된 바이트의 크기가 다르다.
★ Char ≤ short ≤ int ≤ long
Short 형은 int형의 절반만 이용
Unsigned 자료형이 속도가 제일 빠르다
32bit 컴퓨터 -> int형이 제일 빠르다
Sizeof() => 연산자이다. (함수가 아님)
43 67L 57u 67U 89u 89UL
Long형 상수의 경우 숫자 끝에 l이나L을 붙인다.
unsigned long int 형의 경우 ul 이나 UL을 붙인다.
실수형 상수의 경우는 숫자 끝에 F를 붙이면 float형, L을 붙이면 long double형으로 정해진다.
%d : 10진수(signed int 정수)
%x : 16진수
%o:8진수
%f : float
%lf: long double
%u: unsigned int (양수)
%c: 문자 출력
%s: 문자열 출력
문자 상수
Char ch = 'a'
아스키코드표의 a의 숫자값이 ch변수에 저장
문자열
Char ch[8]="This is";
T |
h |
i |
s |
i |
s |
\n | |
84 |
104 |
105 |
115 |
32 |
105 |
115 |
0 |
위와 같은 형태로 저장된다.
Bit 2진수 한자리
Nilbble = 4bit
Byte = 8biit
Word = 32bit = 4Byte
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
7bit |
6bit |
5bit |
4bit |
3bit |
2bit |
1bit |
0bit |
1010 |
1100 |
0110 |
A |
C |
6 |
메모리 공간은 주소를 가지고 있다.
메모리는 Byte단위로 접근
Java는 메모리 접근이 안되고, 참조만 됨
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
정수의 최대값 +127
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
정수의 최소값 -128
#include <stdio.h>
Int main()
{
char cNum;
// unsigned char cNum;
cNum = 127;
printf("%d\n",cNum);
cNum = 128 ;
printf("%d\n",cNum);
return 0;
}
unsigned 형으로 지정하지 않으면은 -128로 출력된다
예제) 피보나치 수열
피보나치 수열이란 1, 1, 2, 3, 5, 8, … 과 같이 앞의 연속된 2개 항을 합한 수열이다.
피보나치 수열의 일반식 : an+2 = an + an+1
입력 받은 항 개수만큼의 피보나치 수열의 합을 구하여라.
(항 개수를 9로 입력받으면 합 Sum = 1+1+2+3+5+8+13+21+34)
#include <stdio.h> int main() { int Num1 = 0, Num2 = 1, Val; int Sum = 1, pSum = 0; int i=0; printf("==================================\n"); printf(" 2011.04.27 KJ 피보나치 수열의 합 \n"); printf("==================================\n"); //항의 개수 입력 printf("항의 개수 입력 : "); scanf("%d",&Val); for(i; i<Val; i++) { pSum += Sum; //피보나치 항의 합 Sum = Num1 + Num2; //피보나치 다음 항 계산 Num1 = Num2; Num2 = Sum; } //항의 합 출력 printf("\n피보나치 수열 %d개 항의 합은 %d", Val, pSum); return 0; } |