• 과제 설명
  • 과제 풀이

 

 

[과제 설명]

01

 

 

[과제 풀이]

1. 구름 IDE 꼭 안 써도 됨 (본인이 원하는 리눅스 개발환경 가능)

멘토님께서 원하는 리눅스 개발환경에서 진행해도 된다고 하셔서 KALI LINUX 개발환경을 택했다.

 

 

2. Sizeof 연산 타이핑해보기(선택)

01

멘토님께서 구름 IDE 개발 환경에 신나는 타이핑이라는 게 있다고 한번 해보라고 선택형 과제로 내주신 것이다.

나는 리눅스 환경이지만 실습해 볼 겸 코드를 작성하고 컴파일해서 실행결과를 확인해 봤다.

 

 

3. 오버플로 예제를 언더플로로 바꿔서 해보기

-CHAR_MIN의 값에서 -1 

01

char 자료형 범위의 최솟값에서 -1을 해 언더플로를 발생시키는 코드를 짜는 문제이다.

 

 

4. 비트 연산 프로그램 바꿔보기 

-특정 위치의 비트를 끄는 함수 구현

01

멘토님께서 설명하신 대로 다음과 같이 그대로 수행만 하면 된다.

`특정 위치만큼 1을 시프트 해야 함 (1 << position)

`1에서 만든 수를 NOT 연산으로 비트 반전 ~ (1 << position)

`비교하고 싶은 수와 ~ (1 << position) AND 연산해서 원하는 위치 비트만 끄기

 

-사용자의 입력(특정 위치 -int값)을 받도록 수정(선택)

01

clear_bit로 2라는 값을 입력하여 2번째 위치의 비트를 끄고 결과를 확인해봤다.

 

 

5. C언어가 기계어가 되는 과정 직접 해보기

 

 

-소스 코드(*.c), 헤더 파일(*.h)

 

-전처리 과정

 

-전처리 된 소스 코드 파일(*.i)

 

-컴파일 과정

 

-어셈블리어 파일(*.s)

 

-어셈블리 과정

 

-오브젝트 파일(*.o)

 

-링킹 과정

 

-실행 파일

 

'Educations > WhiteHat School' 카테고리의 다른 글

[WhiteHat School] 수료증  (0) 2024.04.02
[WhiteHat School] 화이트햇 스쿨  (0) 2024.01.23

+ Recent posts