라즈베리파이 백업하기
SD카드를 리더기에 넣어 컴퓨터에 인식 시킨다.
저번에 이미지를 씌운것처럼 F(라즈베리를 씌워놓은)폴더를 제외한 나머지 디스크에 백업할 디렉토리와 백업파일명을 입력한다. 진행과정..
백업이 완료되면 위와같은 파일이 하나생긴다. 만약 실수로 SD카트에 문제가 생겨 안의 내용이 다 날아가도 백업해 놓은 파일로 다시 시작할 수 있는 것이다.
C언어
signed 와 unsigned의 비트연산 결과 값 차이
#include<stdio.h>
int main()
{
char cNum = 0x89;
unsigned char ucNum = 0x89;
printf("cNum>>1 : %d\n ", cNum >> 1);
printf("ucNum>>1 : %d\n ", ucNum >> 1);
}
결과값이 아래와 같이 나온다
cNum과 ucNum모두 한비트씩 오른쪽으로 밀었는대 결과 값이 왜 다를까 ?
cNum
1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
cNum>>1
| 1 | 0 | 0 | 0 | 1 | 0 | 0 |
위와 같은 상태에서 음수일 경우 빈 칸이 1로 채워진다.
1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
음수의 크기를 구하기 위해 2의 보수를 취하면 00111011+1이므로 60 즉 cNum>>1 32+16+8+4 = 60 이므로 결과 값은 -60이다.
ucNum
1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
ucNum>>1
| 1 | 0 | 0 | 0 | 1 | 0 | 0 |
위와 같은 상태에서 양수와 unsigned int일 경우 빈 칸이 0으로 채워진다
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
결과 값을 구하면 64+4 = 68 결과 값은 68이다.
반복문에 대한 이해
반복문의 순환구조를 이해하기 위해 중단점(break point)를 위와 같이 지정해준다 단축키는 F9번이다.
그리고 실행창을 키고 F5
소스코드를 한 단계 씩 진행한다 디버그메뉴->한 단계씩 진행
함수가 있는 지점에서는 프로시저 단위로 진행을 실행해 준다. 디버그메뉴 ->프로시져단위로 진행
이제 구구단 프로그램이 어떻게 돌아가는지도 확인해보자.
아랫쪽에 자동창에 보면 iCur=2가 적용된 모습을 확인 할 수 있다. 현재 단계에서 다시 한 단계 진행을 하면 iIs도 1로 초기화 되는것을 확인 할 수 있다.
위에서 설명했듯이 printf문 줄에서 프로시져 단위로 진행을 하면
도스창에 첫번째 printf문이 삽입된다 디버그 과정을 관찰하여 복잡한 반복문도 어떻게 진행되는지 확인 할 수 있으므로 헷갈리는 반복문은 다음 과정을 활용하여 좀 더 쉽게이해하도록 하자.
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
2016_03_31_노태경_canonical_업무일지 (0) | 2016.03.31 |
---|---|
2016_03_31_노태경_업무일지 (0) | 2016.03.31 |
20160330_노유찬_환경변수_터미널 (0) | 2016.03.31 |
20160330_박진한_업무일지_로봇제어_환경변수_터미널 (0) | 2016.03.31 |
20160330 업무일지 로봇 제어 터미널 (0) | 2016.03.30 |
2016_03_30_환경변수_업무일지 (0) | 2016.03.30 |
20160329_김도관_업무일지_유닉스및네트워크_C언어기초 (2) | 2016.03.30 |
20160324_박진한_업무일지_펌웨어 실습 (0) | 2016.03.30 |