상세 컨텐츠

본문 제목

visual stdio 2019 - (4단원 예제풀이)

설계공부/C언어(C++)

by 썽심 2023. 9. 15. 09:53

본문

728x90

0915

TOOL : visual stdio 2019 

참고 책 : 혼자 공부하는 C언어 개정판 / 한빛아카데미 - 서현우

 

 

주석처리 대신 상단에 #define PRJ_4-6

 

해당 부분 문단에

#if 0 / #endif

추가하면 주석처리와 동일하게 가능하다.

 

 

 

 

 

 

#else
int main(void)
{
printf("Hello World \n");
}
#endif

 

define이 주석되면

Hellow Would가 나오도록 했다

주석처리 이후 실행결과

 

 

 

 

예제 풀이

 

연산자

4-1

 

 

 

4-2

apple : 정수형이기 때문에 값이 나오지 않는다.

따라서 f인 실수형으로 바꿔야 값이 나온다.

 

apple 변수를 f 실수형으로 바꾼 후 값이 2.5가 나온것을 확인할 수 있다.

 

 

4-3

a , b = 10 인가

a는 1 증가

b는 1 감소

 

 

결과동일

 

a,b에 10 인수 직접 추가

결과동일

 

결과 동일

 

 

printf문에 ++a/ --b 추가한 결과

결과동일

 

 

데시멀로 받아 수행한 다음에 a를 증가 되는 경우

즉 a 수행 이후 a값 1 증가 되는 형식이다.

 

a / b를 추가로 추가하여

확인해보면 위 내용의 결과를 알 수 있다.

 

 

 

가장빠른연산 방법은

cpu의 bus size와 똑같이 해주는것이 가장 빠르다.

bus size에 맞게 조정하기 때문에 느려진다.

따라서 cpu bus size에 맞게 optimaize해주어야 한다.

 

연산 후 size에 맞게 잘라내야한다

따라서 잘라내기 위한 어셈블리 언어가 추가로 들어가기 때문에

 

아두이노 = AVR 8bit RISC

 

논리연산 예제

4-6

마지막 계산식 같은 쓰는 경우가 많으니 조심하자!

 

 

MASKING

 

변수 추가 후 x형으로 해본 결과

b & 255 = 80 값 추가됨

 

ex) 7번째 bit 을 쓰고 싶다 하면 0xc0를 넣어주면 된다.

최상위 / 차상위 추출

최상위 192 / 차상위 0xc0

 

Flag setting

 

추가적으로 b = b | 0x3 부분과 같은 뜻으로

b |=  0x3이 사용된다 b가 생략되니 많이 사용된다.

 

 

6번째 bit를 clear 해주고 싶을 때 (bit clear 해주고 싶을때)

원하는 bit clear

 

ex) 0x40 << clear 하고싶을 때

>> C에서 4없어짐

 

 

상위 bit도 없애고 싶을 때 

마지막 실행문을 보면

2bit가 clear됨을 알 수 있다.

 

>>register clear할때 많이 사용된다.

 

 

 

4-8 형변환

size가 변환 되었다.

char의 크기가 맞지 않아 0 이된것을 볼 수 있다.

 

 

short로 변환하니 c값이 1024가 나오는 것을 알 수 있다.

따라서 버스 크기를 제대로 알고 형태를 변환시켜주어야 값이 제대로 나온다. 

 

 

 

728x90

관련글 더보기