-예제-
포인터 -> 주소를 저장하기 위한 변수이다.
모든 자료형은 그 type에 대한 포인트를 가진다.
포인터의 크기는 얼마 인가? 4byte!!
포인터는 주소를 담아야 하기 때문데 다 4byte 이다.
char * p; // 4byte
에서 p의 type은 char *가 아닌 포인터이다
bus의 크기에 의해 메모리의 크기가 좌우된다.
1. 우리가 숫자를 보고 계산을 하려고 하면 ex> 456 894 를 계산을 하려고 하면 앞에서 부터 계산을 하지 않는다 그것은 올림 수를 반영하기 위해서 이다. 2. 크기 비교는 앞의 숫자를 보고 앞에서 부터 비교를 한다. ex) 1998 2500 을 볼 때 우리는 뒤에부터 보지않고 앞에의 숫자를 보고 대소를 비교한다. 이와같이 컴퓨터도 마찬가지인 것이다.
Intel Cpu에서는 12345678 을 저장을 하라고 하면 뒤집어서 저장을 한다. 78 56 34 12 이렇게 저장이 된다. 이렇게 저장하는 방식을 리틀 엔디안 (little endian) 이라고 한다. Intel Cpu는 계산을 많이 해서 계산에 편리하게 저장이 되는 것이다. 출력을 할 때는 다시 뒤집어서 12 34 56 78 이렇게 출력이 된다. Intel Cpu는 계산에는 유리하나 대소 비교에는 분리하다
super 컴퓨터는 12345678 을 뒤집지 않고 그대로 저장을 한다. 이렇게 저장 하는 방식을 빅 엔디안 (Big endian) 이라고 한다. 계산에는 분리 하지만 대소를 비교를 할 때는 유리하다.
컴퓨터에서 음수를 저장을 할 때는 보수를 취해서 저장을 하려고 한다. 양수일 때는 보수를 취하지 않지만 음수일 때는 보수를 취한다.
|
#include <stdio.h>
int main()
{
int iNum = 0x12345678;
unsigned char * P = (char *) (&iNum);
*P = (0xAA); // *P = (0xAA) 는 써라는 것
printf("%02X \n", *(P+1)); //*(P+1)는 Read 라는 뜻 읽은 후 16진수로 표현해라는 것
printf("%02X \n", *(P+2));
printf("%02X \n", *(P+3));
printf("%02X \n", *(P+4));
//=이 개입 된것은 쓰라는 것이고 =이 개입되어 있지 않은 것은 읽으라는 뜻!!
return 0;
}
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
2014년 03월 25일 손병규[출석번호 14] (16) | 2014.03.25 |
---|---|
2014년 3월 24일 서상우 업무일지[출석번호 13번] (18) | 2014.03.24 |
20140321 박영주 업무일지[12번] (16) | 2014.03.21 |
2014년 3월 20일 업무일지 문대영[출석번호 11] (15) | 2014.03.20 |
연습문제 풀이 작성해보았습니다. (8) | 2014.03.19 |
2014년 03월 18일 일일업무일지 김해성 [출석번호 9번] (17) | 2014.03.19 |
2014년 3월 17일 업무일지 김진철[출석번호 8번] (17) | 2014.03.17 |
20140314 일일보고서 김재성 (출번7) (17) | 2014.03.14 |