본문 바로가기
정보처리기사

흥달쌤 깨알 C언어 11~20강 스터디 노트

by mihsyeh 2022. 4. 7.

강의를 들을때 딴 짓, 딴 생각 방지를 위한, 굉장히 성의없는 기록입니다. 

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의와, JAVA 특강 C언어 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기 전산직 문제풀이 군무원 전산직 문

www.youtube.com

 

 

11. 진법변환, 비트연산

 

  • 8진수 %o
  • 16진수 %x

 

진법변환

  • 10진수 > 2진수

- 2로 나눠지지 않을때까지 계속 나눈다 (하지만 흥달쌤 방법이 더 개꿀)

  • 2진수 > 8진수 

- 오른쪽부터 세 자리 씩 자른다. 0~7 / 4, 2, 1의 모자(?)를 씌운다 / 각각의 자리에서 1이 들어간 곳의 모자를 고른다.

  • 2진수 > 16진수

 - 오른쪽부터 네 자리 씩 자른다. 0~15 / 8, 4, 2, 1 모자(?)를 씌운다 / 각각의 자리에서 1이 들어간 곳의 모자를 고른다.

 

비트연산자 종류 1

  • &  (AND) - 두 개가 전부 참이어야 참
  • |  (OR) - 둘 중에 하나만 참이어도 참
  • ^  (XOR) - 두 개가 서로 달라야 참
  • ~  (NOT) - 계산할시간없어서 걍 외워야하지만 딱히 나온적 없음

 

  • 양수는 +1 해서 나온 숫자에 -붙이기 (~16는 -17)
  • 음수는 -1해서 나온 숫자에 + 붙이기 (~-16은 15)

 

* 예제문제 다시보기..... 0x0f 0x11 도대체 뭐하는건데ㅠ 🌹🌷🌺🥀🥰🖕🌼🌸💐

 


 

12. 매크로, 비트연산

 

매크로란?

  • 반복적인 일들을 쉽게 하기 위해 만들어 놓은 것
  • 변수처럼 선언하기 - #define N 10
  • 함수처럼 선언하기 - #define SQR(X) X*X

 

#define N 10
#define SQR(X) X*X

SQR(N);
SQR(N+2);
= 32 (144 절대아님!)

 

비트연산자 종류 2

  • >> 우시프트 (10>>2 = 10 = 2)
  • << 좌시프트 (10<<2 = 101010 = 40)

 

if (J && K || i ) m=i+j;
else m = j + k

J && K = 0, i = 0이면
0 || 0 은 둘 다 거짓이므로 거짓
하지만 if문이기 때문에 0 *  m = i + j로 계산하지 않고
else문으로 이동한다.......

 


 

13. 삼항연산자(조건연산자)

 

  • 조건에 따라서 다른 명령을 수행하는 연산자
  • 조건 ? 참 : 거짓

 


 

14. if문, switch문

 

if문

  • 조건에 따라서 다른 명령어들을 수행

 

switch문

  • 주어진 값에 맞는 명령어들을 수행
  • break의 유무에 따라서 값이 천차만별 * 중요

 


 

15. 반복문, for문

 

반복문 종류

  • for - 정해진 횟수만큼 반복
  • while - 조건이 만족하는 동안 반복
  • do ~ while - 무조건 한번 수행 후 만족하는 동안 반복

 

for문 구조

 

for (초기식; 조건식; 증감식)
{
수행하는 작업들
}

 


 

16. While문

 

while문 구조

while (조건)
{
수행하는 작업들
}

 


 

17. do~while, for, while

 

do~while은 잘 안나오고, for와 while 섞여서 많이 나옴!

 

do~while 구조

do
{
수행하는 작업들
} while (조건)

 


 

18. while, if문

 

예제 문제 진짜 지독하다.....

 


 

19.  for, continue, break, if

 

반복문 옵션

  • continue - 더이상 아래 문장을 실행하지 않고, 반복문 처음으로 돌아감
  • break - 반복문을 빠져나감

 


 

20. 다중 for문, continue, break

 

다중 반복문

for (조건)
{
for (조건)
{
수행하는 작업들
}
}

3개 나오면 진짜 악마다!!!

마찬가지로 예제 문제,, 어려운건 아닌데 너무 변태같음

 

continue

for(조건1) {
if (조건2) continue
조건3
}

if문의 조건2가 참이면 continnue 수행 > 조건1의 증감식, 조건식 수행
조건2가 거짓이면 조건3으로

 

break

for(조건1)
{
if (조건2) break
조건3
}

if문의 조건2가 참이면 break수행, 조건3하지않고 완전히 빠져나옴
> for문의 조건1 수행 X

 

 

댓글