패스트캠퍼스

[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 13회차 미션

돌맹이시터 2020. 10. 31. 23:28

 

 

 

환급미션 13일째

 

 

소프트웨어 베이직 - c언어의 기초 - 11.문자열 - 이어보기

컴퓨터 구조 - 중앙처리장치 - 마이크로 명령과 ALU -1

컴퓨터 구조 - 중앙처리장치 - 마이크로 명령과 ALU -2

 

 

 

 

 

 

 

소프트웨어 베이직 - c언어의 기초 - 11.문자열 - 이어보기

 

 

xcode에서 gets, gets_s 함수 사용이 안되서 빡종하고....

해결책을 찾아보았으나 .....

윈도우 visual studio 에서는 강제로 실행이 가능하지만,

맥에서는 xcode, web ide, vs code 모두 실행이 되지 않았다.

ㅂㄷㅂㄷ.....

 

 

일단 패스하고 넘어가는 걸로..

 

 

 

- c언어의 문자열 함수

 

<string.h> 라이브러리에 포함되어 있다.

c++에서는 더욱 다양한 문자열 함수가 있지만,

c에서 문자열을 처리하기 위해 기본적으로  알아야 할 함수 몇 가지를 정리한다.

 

strlen(a)

string length, 문자열a의 길이 반환

strcmp(a,b) 

string compare, 문자열 a이 문자열b보다 사전적으로 앞에 있으면 -1, 뒤에 있으면 1을 반환

 

strcpy(a,b)

string copy, 문자열 b를 문자열 a로 복사

 

strcat(a,b) 

string concatenate, 문자열a에 문자열b를 더함 - concatenate ; 연결시키는 것..
주의사항 - a 문자열의 길이를 strcat 이후에도 문제가 생기지 않도록 확인해준다.

strstr(a,b) 

string string, 문자열1에 문자열2가 어떻게 포함되어 있는지를 반환
긴 문자열에서 짧은 문자열이 어느 위치에 있는지 확인
주의사항 - 짧은 문자열의 주소값을 반환하므로, 해당 문자열 이후의 문자열만 반환됨

 

 

 

strstr의 예시 ) 

 

 

위의 코드를 실행하면

 

 

 

문자열 a 중에서 

문자열 b 이후부터 출력되는 것을 확인할 수 있다.

 

 

 

 

 

 

 

컴퓨터 구조 - 중앙처리장치 - 마이크로 명령과 ALU -1

컴퓨터 구조 - 중앙처리장치 - 마이크로 명령과 ALU -2

 

 

 

 

ALU는 cpu 내에서 가장 중요한 역할을 하는데,

연산, 전달, branch, main process-> sub process로의 전달, feedback, return 등의 역할을 한다.

 

 

 

- 마이크로 연산

 

*레지스터 전송 마이크로 연산

레지스터 사이에서 이진 정보를 전송

 

*산술 마이크로 연산 

레지스터에 저장된 수치 데이터의 산술 연산

 

*논리 마이크로 연산

레지스터에 저장된 비수치 데이터의 비트 조작 연산 (AND,OR,NOT,XOR 등)

 

*시프트 마이크로 연산

레지스터에 저장된 데이터의 시프트 연산

left shift -> x2

right shift -> x1/2

 

ex)

0100 == 4

왼쪽으로 shift -> 1000 == 8 

오른쪽으로 shift -> 0010 == 2

 

 

 

 

 

 

- 산술 논리 연산장치 (ALU, arithmetic logic unit) - 산술 연산, 논리 연산 수행

 

보통은 정수 연산, 최근에는 부동 소수 연산도 가능

 

 

carry-in : 이전에 생선된 캐리 비트

AC : accumulator, 처리된 결과를 일시적으로 기억할 수 있는 공간

 

overflow : 치명적인 경우를 의미, 

예를 들어 2의 보수를 취하면서 1의보수 1111 +1 -> 0000 이 되는 상황을 말한다.

 

parity : 오류인지 체크

 

 

 

 

 

 

산술 연산의 종류와 기능

 

ADD : add

SUB : subtract, A+(~B+1) = A-B

MUL : multiply

DIV : divide

INC : increment, A를 1 증가 ( ex: PC, program counter )

DEC : decrement, A를 1 감소

NEG : negate, A의 2의보수를 취한다.

 

 

 

 

 

논리 연산의 종류와 기능

 

AND

OR

NOT

XOR 

 

 

 

산술 시프트 연산의 종류와 기능

 

ASL, ASR : 부호 유지, 시프트

LSL, LSR : 비는 자리에는 0이 오게 된다. 부호가 바뀔 수 있음

ROL, ROR : 왼쪽/오른쪽으로 시프트 하면서, MSB(most signiture bit)와 LSB(least s.b)가 시프트 하는 것을 생각하면 됨. 밀려나는 bit가 반대쪽 끝으로 간다

 

 

 

 

 

 

 

논리 연산의 예시

 

결과값을 보면 당황스럽지만, 논리연산이기 때문에 산술연산과 연관지어 생각할 필요가 없다.

결과값은 신경 쓸 필요가 없고 비트 대 비트의 연산이 이루어질 뿐이다.

 

 

* masking

위의 예시에서 보는 것처럼,

특정 비트를 날리고 싶을 때 주로 사용한다고 한다.

위의 예시에서는 A의 상위비트를 날리고, 하위비트만 나타내는 경우이다.

 

* insert

위의 예시에서

A의 하위비트와 B의 상위비트가 합쳐진다.

 

 

 

 

 

 

 

 

 

올인원 패키지 : 컴퓨터 공학 전공 필수👉https://bit.ly/3i4sCVE