C, C++, Java 이 모든 언어의 공통적인 특징중의 하나가 bit 연산이 가능하다는 것. 아무래도 인간은 0과 1의 bit 배열보다는 10진수에 익숙한데 bit 연산이 효율이 좋은건 누구나 알고 있는 사실. 앞으로도 bit연산에 대해서 계속 포스팅을 하겠지만 오늘은 bit 연산 기법중 기본이라 할 수 있는 toggle 방식을 보겠다. 프로그래밍을 하다가 보면 Toggle을 해야하는 경우가 많다. 가장 많은 경우가 특정 버튼을 눌렀을 때 값을 0과 1 혹은 true, false로 계속 토글하는 경우가 되겠다. java 언어를 기준으로 설명을 하자면, 버튼이 눌릴 때 호출되는 함수를 onClick(.... ) 이라고 가정할 때 아래와 같이 짜는 경우가 생각보다 많다. boolean toggle = fa..
AlexyAB의 YOLO github page 내용을 정리했습니다. 자세한 사항은 들어가셔서 보실 수 있습니다. YOLO Training on Windows. 명령어 사용법 -ext_output : output coordinate of objects -save_labels < data/test.txt : test.txt에 적힌 경로의 이미지에 label 적힌 txt 저장.(Marking 좌표 저장) ex) darknet.exe detector test .data .cfg .weights -dont_show -ext_output -save_labels < data/train.txt 이미지 예시 darknet.exe detector test datafile.data cfgfile.cfg weightsfile..
프로그램의 구조 컴퓨터 프로그램은 컴퓨터에 수행할 작업을 지시하는 일련의 명령이다. 프로그램은 일반적으로 세 가지 기본 요소로 구성된다. : 표현식(expression), 명령문(statement) 및 함수(function) 명령문(Statement) 프로그램에서 가장 일반적인 구조는 명령문(statement)이다. C++에서 명령문은 가장 작은 단위다. 생각을 전달하기 위해 사용하는 문장과 유사하다. C++에서는 컴파일러에게 작업을 수행하기 위해 명령문을 작성한다. C++에서 명령문을 일반적으로 세미콜론(;)으로 끝난다. C++에는 아래와 같은 여러 종류의 명령문(statement)이 있다. int x; x = 5; std::cout
개요 C++ 프로그래밍을 시작하면 레퍼런스(Reference : 참조자)라는 새로운 개념을 접하게 됩니다. 언뜻 보면 C언어를 공부할 때 여러분들을 굉장히 괴롭혔던 포인터(Pointer)와 유사해 보입니다. 어떠한 대상을 가리킨다는 점에서는 같습니다. 하지만 포인터와 레퍼런스는 여러가지 차이점이 있습니다. 그 중에서 C++ 프로그래밍을 할 때 반드시 알아야 할 두 가지 중요한 차이점에 대해서 이야기 해보겠습니다. 1. NULL 허용 여부 우선 NULL값을 허용하는 것에 대한 문제입니다. 포인터는 아시다시피 NULL을 허용하지만 레퍼런스는 NULL이 될 수 없습니다. 이 부분이 굉장히 중요한데요. 포인터를 다룰 때 수없이 우리를 마주쳤던, ‘Null pointer exception’ 또는 ‘Segmenta..
Goal Error와 Exception의 차이점에 대해 설명할 수 있다. Exception Handling을 할 수 있다. Abstract Error와 Exception은 같다고 생각할 수도 있지만 사실 큰 차이가 있습니다. Error 는 컴파일 시 문법적인 오류와 런타임 시 널포인트 참조와 같은 오류로 프로세스에 심각한 문제를 야기 시켜 프로세스를 종료 시킬 수 있습니다. Exception 은 컴퓨터 시스템의 동작 도중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받는 것우로 예를 들면, 연산 도중 넘침에 의해 발생한 끼어들기 등이 이에 해당합니다. 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우를 프로그램 오류라 하고, 프로그램 오류에는 에러(er..
Goal Upcasting과 Downcasting에 대해 설명할 수 있다. Casting (강제 형변환, 명시적 형변환) 캐스팅(casting) 이란 타입을 변환하는 것을 말하며 형변환 이라고도 합니다. 자바의 상속 관계에 있는 부모와 자식 클래스 간에는 서로 간의 형변환이 가능합니다. 이번 글에서는 자식 클래스가 부모 클래스의 타입으로 캐스팅되는 업캐스팅과 반대로 부모 클래스가 자식 클래스의 타입으로 캐스팅되는 다운캐스팅에 대해서 정리합니다. 시작하기에 앞서 부모 클래스인 상속 관계의 상위 클래스를 수퍼 클래스 , 그리고 자식 클래스인 하위 클래스를 서브 클래스 라고 정의합니다. 간단하게 말하자면 자료형이 정해진 변수에 값을 넣을때는, 변수가 원하는 정보를 하나도 빠짐 없이 다 넣어줘야 성립합니다. U..
Goal Promotion에 대해 설명할 수 있다. Casting에 대해 설명할 수 있다. 형변환할 때 발생할 수 있는 에러에 대해 설명할 수 있다. 데이터 타입 형변환 (타입변환) Java에서 연산은 "2(byte 데이터 타입) + 3(byte 데이터 타입)" 과 같이 동일한 데이터 타입에서 가능합니다. 하지만, 프로그램을 만들다 보면 "2(byte 데이터 타입) + 3.5(double 데이터 타입)"과 같이 서로 다른 데이터 타입끼리의 연산이 필요할 때가 있습니다. 이럴경우 변수의 데이터 타입을 바꿔주는 작업이 필요한데, 이것이 데이터 타입의 형변환(타입변환)입니다. 이러한 형변환(타입변환)에는 크게 자동 형변환(Promotion) 과 강제 형변환(Casting) 이 있습니다. 또 다른말로 자동 형변..
Call by value 값에 의한 호출 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시공간이 생성됨 (종료 시 해당 공간 사라짐) call by value 호출 방식은 함수 호출 시 전달되는 변수 값을 복사해서 함수 인자로 전달함 이때 복사된 인자는 함수 안에서 지역적으로 사용되기 때문에 local value 속성을 가짐 따라서, 함수 안에서 인자 값이 변경되더라도, 외부 변수 값은 변경안됨 void func(int n) { n = 20; } void main() { int n = 10; func(n); printf("%d", n); } printf로 출력되는 값은 그대로 10이 출력된다. Call by reference 참조에 의한 호출 call by reference 호출 방식은 ..
Goal Primitive type에 대해 설명할 수 있다. Reference type에 대해 설명할 수 있다. Abstract 자바에는 기본형(Primitive type)과 참조형(Reference type)이 있습니다. 일반적인 분류는 다음처럼 가집니다. Java Data Type ㄴ Primitive Type ㄴ Boolean Type(boolean) ㄴ Numeric Type ㄴ Integral Type ㄴ Integer Type(short, int, long) ㄴ Floating Point Type(float, double) ㄴ Character Type(char) ㄴ Reference Type ㄴ Class Type ㄴ Interface Type ㄴ Array Type ㄴ Enum Type ㄴ..
- Total
- Today
- Yesterday