레필리아
'컴퓨터공학 기초' 카테고리의 글 목록 (7 Page)

컴퓨터공학 기초

컴퓨터공학 기초/C.C++

문자열 검색 함수 - strchr(), strrchr(), strstr(), strspn(), strcspn(), strpbrk()

strchr함수 기능 : 문자열에서 임의의 문자가 처음으로 발견된 위치를 검색. 기본형 : char *strchr(const char *s, int c); // s : 문자열, c : 문자 반환값 : 찾은 문자에 대한 포인터를 반환. 발견하지 못하면 NULL을 반환. 헤더파일 : strrchr함수 기능 : 문자열에서 임의의 문자가 마지막으로 발견된 위치를 검색. 기본형 : char *strrchr(const char *s, int c);// s : 문자열, c : 문자 반환값 : 찾은 문자에 대한 포인터를 반환. 발견하지 못하면 NULL을 반환. 헤더파일 : strstr함수 기능 : 문자열에서 임의의 문자열을 검색. 기본형 : char *strstr(const char *haystack, const ch..

컴퓨터공학 기초/C.C++

copy()와 특별한 이터레이터

★ copy() → 하나의 컨테이너에서 특정 범위의 데이터를 다른 컨테이너로 복사하는 알고리즘 인수 1, 2 : [인수1, 인수2) 의 범위로 이터레이터를 인수로 넣음. (포인터도 가능) 인수 3 : 해당 이터레이터 지점부터 해서 데이터를 덮어씌운다. → 이 알고리즘의 주의사항은 인수 3에 넣어지는 지점에 삽입하는 것이 아니라 기존 데이터 위에 덮어 씌운다는 것이다. 또한 인수 3에 복사를 할때 자동으로 공간 할당을 해주지 않기 때문에 인수 1~2 범위 데이터를 넣을 수 있는 충분한 공간이 필요하다. 그렇지 않으면 할당 받지 않는 지점에 데이터를 덮어 씌우므로 런타임 에러를 유발하게 할 것이다. → copy() 는 다음과 같이 쓸 수 있다. vector test( 10 ); int iArray[10] =..

컴퓨터공학 기초/C.C++

이터레이터(iterator)

★ 일반화 프로그래밍 → STL은 일반화 프로그래밍의 한가지 예이다. → 객체지향 프로그래밍이 프로그램의 데이터적인 측면을 중시하는 데에 비해 일반화 프로그래밍은 데이터 타입에 대해 무관하며 알고리즘을 중시한다. 이것은 즉 일반화 프로그래밍이라는 것이 어떠한 데이터 타입에서도 무난하게 돌아가야 한다는 것을 의미한다. ★ 이터레이터에 대해 → STL을 이해하기 위해서는 이터레이터의 이해가 반드시 필요하다. 배열, 리스트, 큐 등 다양한 종류의 컨테이너에 대해서 같은 연산으로 동일한 동작을 할 수 있도록 하는 것이 이터레이터이다. 예를 들어 ++연산을 예로 들어본다면 둘다 다음 요소를 가리키게 한다는 기능적인 측면에서는 같지만, 배열에서는 다음 주소 공간을 가리키게 하는데에 비해 리스트는 서로의 원소들이 (..

컴퓨터공학 기초/C.C++

C++ 문자열 자르기 (string)

원본 문자열과 자를 문자열을 매개변수로 넣으면 string* 으로 반환된다. ex) string* str = strSplit("hi,hello", ","); => [0] : hi [1] : hello

컴퓨터공학 기초/C.C++

strtok() 함수를 이용한 연속 토큰 추출

아래는 strtok() 함수를 이용해서 토큰을 가져오는 코드이다. strtok()은 입력문자열(첫번째인자)에서 구분자문자(두번째인자)로 구분될 수 있는 토큰을 찾아 준다. strtok()를 한번 호출하면 입력문자열의 첫번째 토큰을 찾아준다. 그렇다면 두번째, 세번째... 문자열의 끝까지 토큰을 계속해서 얻어오려면 어떻게 해야 될까? 아래 코드처럼 연속 토큰을 추출하려면 처음 strtok() 로 첫번째 토큰을 찾고 그 다음부터는 strtok(NULL, 구분자)로 호출하여 연속되는 토큰을 계속 찾을 수 있다. 여기서 한가지 의문의 생긴다... 입력문자열에 NULL 값을 집어넣는데 어떻게 토큰을 계속 찾을 수 있을까? strtok() 내부에서는 토큰을 찾고 찾은 토큰 바로 뒤의 문자를 NULL 로 만들어 버린..

컴퓨터공학 기초/Embedded system

SIC/XE 머신이란? - 2부 ( 주소 계산 방법, 주소 해석 방법, 명령어 )

6. 주소계산 방법 SIC머신은 그냥 그 바이트자체가 주소였습니다. 100번째 위치한 바이트다. 그럼 100이 주소였죠. 또는 Indexed Addressing이라고 하여, (x)레지스터의 값을 더해주는 정도였습니다. 하지만 SIC/XE 머신은 조금 다릅니다. 어떻게 주소를 계산하는지 알아보도록 해요! 아래는 포멧3번을 사용하는 주소사용방법입니다. 포멧3번에서 SIC/XE 머신에서는 상대주소(Relative Addressing)가 사용이됩니다. 즉, 나는 어떤놈으로부터 얼만큼 떨어져있다. 나는 영희로부터 50미터 앞에 있다. 이게 바로 상대주소입니다. SIC/XE 머신에서 상대주소를 취급하는데, 2가지가 있습니다. 한가지는 (B)레지스터를 사용하는 Base Relative 또 한가지는 (PC)레지스터를 ..

컴퓨터공학 기초/Embedded system

SIC/XE 머신이란 무엇인가?

1. SIC/XE 머신이 뭐에요? SIC머신에 대해 정리해놓은적이 있는데요, 한번 더 말씀드리면, 그냥 가장 기본적인 능력을 수행해내는 가상의 컴퓨터 입니다. 네 아주 기본적인 능력만 수행합니다. 그렇기 때문에 한계에 부딪히게 됬습니다. 주소도 좀 모자란것같고.. 뭐 이런저런 -_-;하여튼 뭔가 좀 부족해.. 그래서 나온 게 SIC/XE입니다. SIC머신에 조금더 살을 같다 붙인겁니다. 그럼 지금부터 SIC/XE머신에 대해서 알아보도록 하죠. 어렵지 않습니다. 2. 메모리 SIC머신과 같습니다. 1바이트는 8비트고, 1워드는 3바이트입니다. 아주 쉽죠~ 다만, 주소가 부족했습니다. 그래서 2^15의 주소를 2^20으로 확장했습니다. 결국 1Mb까지 주소를 표현할 수 있게 되었습니다. 3. 레지스터 추가된..

컴퓨터공학 기초/Embedded system

SIC 머신이란 무엇인가? (가상컴퓨터) - 2부

7. 명령어 SIC머신이 사용하는 명령어에 대해서 배워보도록 해요. 데이터 이동 : LDA, LDX, STA, STX,... 사 칙 연 산 : ADD, SUB, MUL, DIV,... 비 교 연 산 : COMP Conditional Jump : JEQ, JLT, JGT Jump to subroutine : JSUB Return from subroutine : RSUB 아, 뭔가 있는데, 복잡해 보이네요. 하지만 전혀 어렵지 않습니다. 하나하나 살펴보도록 하죠. 먼저 데이터 이동 LDA : Load A의 약자입니다. A레지스터에 데이터를 입력하라는 뜻입니다. LDA word라고 명령어를 주면, word라는 변수에 담긴 데이터가 A레지스터에 저장됩니다. 쉽죠? STA : 이것도 마찬가지! StoreA의 약자..

컴퓨터공학 기초/Embedded system

SIC 머신이란? (가상컴퓨터)

1. SIC 머신이란 무엇인가? SIC머신이란 가상컴퓨터를 말합니다. 아주 기초적인 능력만 가지고 있는, 하지만 왠만한건 모두 해낼수 있는 가상의 컴퓨터! 흔히 컴퓨터를 전공하는 사람들이 접하게 되는데, 이제부터 그 가상 컴퓨터 SIC머신에 대해서 알아보도록 합시다. 2. 메모리 Word Size (명령어를 처리하는 가장 기본적인 단위)로 3바이트를 사용하고 있으며 모든 주소는 바이트 주소이다.1주소는 1번째 위치한 바이트, 5주소는 5번째 위치한 바이트.. 1워드는 가장 낮은 바이트가 바로 시작주소입니다. 100번지 101번지 102번지 이때, 이 워드의 주소는 100번지. 24비트중 15비트는 주소를 표현하기 위해 사용한다. 총 32768개를 표현 할수 있답니다. 3. 레지스터(CPU 메모리) 자자 ..

컴퓨터공학 기초/Database

SQL Query문 기초 문법

1. Select - Select는 찾기 명령어 - select 테이블명.필드명 from 테이블명 where 조건 - 조건문을 여러개 입력 가능. and나 or로 연결 - where 조건문 이후에 oreder by 필드명 asc를 입력하면 오름차순 - where 조건문 이후에 oreder by 필드명 dsc를 입력하면 내림차순 - select * from creature_template where name = '일리단 스톰레이지'; - select creature_template.name, creature_template.entry from creature_template where name like '%일리단%; - select item_template.entry, item_template.name f..