환급미션 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 ; 연결시키는 것.. |
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
'패스트캠퍼스' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 15회차 미션 (0) | 2020.11.02 |
---|---|
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 14회차 미션 (0) | 2020.11.01 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 12회차 미션 (0) | 2020.10.30 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 11회차 미션 (0) | 2020.10.29 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 10회차 미션 (0) | 2020.10.28 |