[JAVA] 정수의 최대값, 최소값 출력

자바에서 정수의 최대값, 최소값 출력 32비트에서 Int 정수 범위는 -2,147,483,648 ~ 2,147,483,647 이다. 따라서 32비트 Int 정수의 최대값은 2,147,483,647, 최소값은 -2,147,483,648 이다. (64비트에서도 정수의 경우 32비트와 마찬가지로 4byte라서 같다.) Integer 클래스의 MAX_VALUE와 MIN_VALUE를 사용하면 정수의 최대값(2,147,483,647)과 최소값(-2,147,483,648)을 바로 출력할 수 있다. Integer 클래스 외 Long, Short 등의 클래스도 같은 메소드를 제공한다.

[Python] 바이트형(bytes, b”)의 문자열 변환(decode)

bytes 파이썬에는 1바이트를 저장하는 bytes 자료형이 있다. print함수로 bytes를 출력하면 b’~~~~’와 같이 출력된다. decode 어떤 함수는 문자열이 bytes로 출력된다. bytes로 출력된 문자열을 우리가 이해하려면 영문이나 한글 등으로 변환해야한다. 이때 bytes를 유니코드로 변환해주는 decode()함수를 사용한다. deocde()의 역은 encode()다. 아래 process.stdout.readline()의 출력 결과는 bytes형이다. 따라서 우리가 이해할 수 있게 출력 결과를 decode했다. decode함수의 인자는 인코딩 방식이다. euc-kr … Read more

[Python] 자식클래스에서 부모클래스의 초기화함수(init) 사용

클래스의 초기화 함수 클래스 안에서 __init__이라는 이름의 함수를 구현하면 파이썬은 이를 초기화 함수로 인식합니다. 초기화함수는 클래스를 선언함과 동시에 호출하여 수행합니다. __init__의 __은 언더바 두개입니다. 상속과 초기화 함수 상속받은 자식클래스와 부모클래스 둘 다 초기화함수가 존재하는 경우, 자식클래스 선언 시 자식클래스의 초기화함수만 호출됩니다. 상속받은 자식 클래스에서 부모 클래스의 초기화함수를 호출하기 위해서는 자식클래스의 초기화함수에 부모클래스의 초기화함수를 호출하는 super().init()를 … Read more

[C, C++] extern “C” 의미

C와 C++간의 함수 호출 C에서 C++ 함수를 호출할 수 있고, C++에서 C함수를 호출할 수 있다. 그러나 단순히 일반적인 방법으로 호출할 경우 문제가 발생할 수 있다. C에서는 함수명이 다르면 다른 함수지만 C++에서는 함수 오버로딩을 지원하기 때문에 함수명이 같아도 다른 함수일 수 있다. 예를 들어 fun(int a)와 fun(int a, int b)는 다른 함수다. 따라서 C++ 컴파일러는 C와같이 … Read more

[C, C++] 정적변수와 전역변수 비교(static, global)

정적변수(static variable) 정적변수는 선언 위치에 따라 활용도가 다르며 변수 앞에 static을 붙여서 선언한다. 함수 외부에 선언 함수 외부에 선언한 정적변수는 선언한 파일에서만 호출이 가능하다. 즉, 선언한 파일 내부의 함수들은 사용 가능하지만 선언한 파일 외부의 함수들은 사용이 불가능하다. 전역변수가 extern 키워드로 다른 파일에서 호출이 가능한 것과는 다르다. 함수 내부에 선언 함수 내부에 선언된 지역변수는 함수가 소멸시 … Read more

[C, C++] 구조체 배열 멤버 memset으로 초기화

memset 배열을 -1, 0, 1로 초기화가 필요할 때 memset을 이용하면 깔끔하고 편하다. 이전에 memset을 이용하여 배열 초기화 하는 방법을 작성한적이 있는데, 구조체의 멤버로 존재하는 배열의 초기화도 필요해서 추가 작성하게 되었다. [C, C++] memset을 이용한 정수배열 초기화 구현 헤더파일 memset 기본형 동적할당 구조체의 memset 예제 배열은 포인터이고 구조체의 멤버로 들어가도 마찬가지다. 따라서 &연산자가 필요하지 않다. 동적할당이므로 … Read more

[C, C++] 정적(static)함수의 사용 이유

정적 함수로 만들어주는 static 함수를 정의할 때 static을 붙이면 해당 함수는 다른 파일에서 호출하지 못하는 정적함수가 된다. 내가 겪은 정적함수를 사용하는 이유는 다음과 같다. 코드 안정화 선임중에 다른 파일에서 사용하지 않는 모든 함수는 static을 붙이는 분이 계셨다. 이렇게 함으로써 다른 파일에서 의도치 않게 어떤 함수를 호출하는 경우를 막는다. 하나의 예를 들자면, a파일을 A가 개발하고 b파일을 … Read more

[C, C++] typedef struct의 포인터 별칭(alias)

다른 글 [C, C++] typedef 사용 이유 typedef로 정의한 구조체의 포인터 별칭 아래 코드와 같이 typedef로 정의한 구조체의 별칭에 포인터가 추가적으로 존재하는것을 여러 소스코드에서 종종 볼 수 있다. typedef struct는 여러개의 별칭을 가질 수 있다. typedef를 사용하여 구조체를 선언할 때 struct를 생략했듯이 포인터 별칭을 두게 되면 포인터 구조체를 선언할 때 간편하다.

[C, C++] typedef 사용 이유

typedef 사용 이유 typedef는 자료형의 별칭을 정의할 때 사용한다. 아래 코드에서 char는 int_8의 별칭을 가지게 되고 char 혹은 int_8 중 아무거나 써도 같은 결과를 갖는다. 가독성의 증가 가장 흔하게 볼 수 있는 예는 자료형에 비트수를 넣는 것이다. signed char 대신 int8_t, unsigned char 대신 uint8_t, short 대신 uint16_t와 같이 정의하여 만들 자료가 정확히 몇 비트 … Read more

[C, C++] 크기가 0인 배열의 사용 이유 (flexible array member)

크기가 0인 배열 크기가 0인 배열을 멤버로 가지는 구조체를 목격했다. arr[0]이 실제로 0의 크기를 갖는지 확인하기 위해 sizeof로 출력해봤더니 0이 맞다. 어디에 쓰는지 몰라서 인터넷을 뒤졌다. 검색 키워드 크기가 0인 배열은 인터넷에 아래의 키워드들로 검색할 수 있다. 이 글은 크기가 0인 배열을 간략히만 소개할 것이므로 자세한 내용은 위 키워드들로 검색이 필요하다. 크기가 0인 배열의 사용 … Read more