전체 글(140)
-
c/c++ 조건문
조건에 따라 다른 코드를 실행하기 위한 문법 조건식은 단일 조건식, 복합조건식이 가능하다. 단일 조건식 : a > b 같은 논리비교연산이 한번인 조건식. 복합 조건식 : 두가지 조건식을 &&, || 같은 논리 연산으로 묶인 조건식. if ~ else 분기가 2개일떄 사용. 조건식의 결과가 true or false 일때. 논리연산결과를 조건으로 사용함. if ~ else if ~ else 분기가 3개 이상일때 사용. 조건식의 결과가 3개이상. switch 분기가 n개일때 사용. 보통 분기 결과가 정수형으로 나올때 사용한다. 조건으로는 정수형을 집어 넣고 결과로는 enum 형을 받아 분기를 확정한다.
2020.01.02 -
c/c++ 반복문
여러번 반복해야 하는 코드를 중복해서 작성하는 것이 아니고 한번 작성하고 필요한 만큼 반복시키기 위한 문법. 한번의 반복을 루프(loop) 라고 하며 보통의 경우 무한 루프에 빠지는 것을 경계해야한다. 조건식으로는 논리연산을 사용한다. while 조건 확인후 루프 진입. do while 최초 루프 진입후 조건 확인시작. for 범위 조건 조건확인후 조건요소 증감 후 루프 진입 3가지가 있다. 인위적으로 무한루프를 유도하는 경우도 있다. 연속적인 작업이 필요한경우 탈출을 위한 조건의 조건문으로 탈출한다. 당연한 말이지만 중첩해서 사용 가능.
2020.01.02 -
c/c++ 포인터
포인터 프로그램은 메모리에 저장된다. 변수도 메모리에 저장된다. 사용하기 위해서 메모리의 주소를 기준으로 찾아서 사용한다. 32bit 프로그램이라면 4Byte 단위 64bit 프로그램이라면 8Byte 단위 단위별로 변수를 저장한다. 즉, char 1Byte 라도 무조건 단위기준으로 저장된다는 의미. 남는부분은 그냥 비어있는 것. 이때문에 메모리 낭비가 발생되기도함. 고오급 기법으로 넘어가면 이것을 압축하거나 이동을 시켜 비어있는 부분을 사용할수 있게 하는 기법이 등장한다. 일단 넘어가고, 메모리에 주소를 기준으로 저장된다는 것만 알아도 충분하다. 주소값은 16진수로 결정되는데. 32bit 라면 32자리 64bit 라면 64자리 수로 저장된다. 32bit는 최대 메모리 4GB가 된다. 2^32로. 64bi..
2020.01.02 -
c/c++ 비트연산자
변수들은 Byte 단위로 저장된다. 즉, 8bit 단위로 저장된다. 가장 작은 char 변수도 1Byte, 8bit 로 저장된다. 앞서 다루었던 연산자들은 전부 변수 단위, Byte 단위의 연산자들이다. 여기서는 비트 단위의 연산자를 다루어 보겠다. Byte단위 변수를 bit 단위로 표현하면 2진법으로 표현된다. 이후의 연산자는 2진법 연산용 연산자로 보아도 무방하다. 연산자 설명 구분 & AND 이항 | OR 이항 ^ XOR 이항 ~ NOT 단항 오른쪽 시프트 이항 &= AND 후 대입 이항 |= OR후 대입 이항 ^= XOR후 대입 이항 = 오른쪽 시프트 후 대입 이항 논리연산을 기본으로 한다. bit의 각 자리는 2^n을 나타내고 true(1) & false(0) 로 표현된다. and 연산의 결과는..
2020.01.01 -
c/c++ 연산자
증감 연산자 논리연산자 비교연산자 삼항연산자 비트연산자 가 존재하며 단항 : 증감, 논리 이항 : 사칙연산, 논리, 비트, 비교 삼항 : 삼항 으로 구분할수 있다. 연산자 기능 구분 ++ 1 증가 단항 -- 1 감소 단항 + 덧셈 이항 - 뺄셈 이항 * 곱셈 이항 / 나눗셈 이항 % 나머지 이항 > 큼 이항 = 크거나 같음 이항
2020.01.01 -
Hash
사전적 의미 : 주어지는 임의의 길이의 임의 데이터를 사전에 정의한 길의의 데이터로 매핑하는 것. 해시 함수 : 일련의 알고리즘을 통해 입력된 데이터를 고정길이 데이터로 매핑하는 함수. 사용되는 자료구조 : 해시 맵, 해시 셋 (c++11 이전에는 hash_map, hash_set으로 포함되어있었으나 이후부터 unordered_map, unordered_set으로 변경되었다.) 함수에 사용되는 대표적인 알고리즘으로는 MD5, SHA계열 등이 있다. 암호화에도 사용될 수 있다. 작동방식 0~n개의 데이터 저장용 리스트를 만들고, 입력된 데이터에 대해 해시 함수를 적용한뒤, a 라는 값이 index로 생성되면, 저장용 리스트의 a index 위치에 데이터를 저장하는 방식. 데이터 저장시에 해시값이 겹치는 경..
2019.12.29