본문 바로가기

Programming Language

(22)
Escaping - Difference '\0' and '\n' in the C programming language? C에서 '\0'과 '\n'의 다른 점은? - '\0' : Null character (ASCII 0)으로, string의 terminator이다 (C strings are NULL-terminated) // char_1은 출력할 때 hello 뒤에 쓰레기값이 같이 출력될 수 있다 char_1[10] = "hello"; // char_2는 출력할 때, string (char array)는 '\0'을 만나면 끝난 것으로 간주하므로 // hello만 잘 출력된다 char_2[10] = "hello\0"; - '\n' : Newline (ASCII 10)으로, 개행문자를 의미한다 출처: What is the difference between '\0' and '\n' in the C programming lang..
Anaconda 사용법 버전 확인, 업데이트 conda --version conda update conda 가상환경 생성 create # 아나콘다 가상환경 생성 conda create --name(-n) 가상환경명 설치할패키지 conda create -name test python=3.5 conda create -n test python=3.5 가상환경 활성화(activate), 비활성화(deactivate) # 설치된 가상환경 리스트 확인 conda info --envs # 가상 환경 활성화 activate 가상환경명 # 가상 환경 비활성화 deactivate 가상환경명 패키지 설치(install), 패키지 확인(list) # 패키지 설치 conda install simplejson # 패키지 리스트 확인 conda list..
Decimal to Binary translation at C (C에서, 10진수에서 2진수 변환하기) unsigned long long int_to_bin(int k) { if (k == 0) return 0; if (k == 1) return 1; return (k % 2) + 10 * int_to_bin(k / 2); unsigned long long은 그냥 unsigned int로 나타낼 수 있다. 하지만 32-bit를 넘어가는 숫자를 표현하고 싶을 때는, 예를 들면 num = 592394 to binary = 1001 0000 1010 0000 1010 이와 같은 숫자(10010000101000001010)는 32-bit를 넘어가기 때문에 그냥 unsigned int로 하면 범위가 넘어가 이상한 숫자가 나올 수 있다. unsigned int 범위: 0 ~ 4,294,967,295 그래서 나는 큰 ..
Ubuntu 20.04 LTS에 Golang 최신버전 설치하기 1. 첫 번째 방법 - 실패 sudo apt install go 설치는 잘 되고, 알아서 환경변수 설정되 되었지만, 최신버전이 설치가 되지 않았다. apt를 업데이트 해도 계속 이전 버전이 설치가 되어서, 결국 이렇게 설치한 go는 삭제했다. 이렇게 설치한 go가 설치되는 경로는 다음과 같다 /usr/lib/go 아래와 같은 방법으로 apt로 설치한 go를 삭제했다. sudo apt remove golang sudo apt autoremove 2. 두 번째 방법 - 성공 update golang이라는 github repo를 확인하고, 방법을 적용하였다. 해당 글은 update golang이라고 나와있지만, latest golang을 설치하는 것 또한 동일하다. git clone https://github..
Python 슬라이스 * 슬라이스 예시 >>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] >>> a[2:8:3] # 인덱스 2부터 3씩 증가시키면서 인덱스 7까지 가져옴 [20, 50] a[i:j:k] 이면 i는 시작 index, j는 끝 index + 1, k는 index 증가폭이다. 각 i, j, k는 생략될 수 있다. 생략되면 i는 0번째 index, j는 a의 전체 길이, k는 증가폭 기본인 1이다. * 슬라이스 증가폭을 -1로 설정하기 >>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] >>> a[5:1:-1] [50, 40, 30, 20] 인덱스 증가폭을 음수로 설정하면 리스트를 뒤에서부터 가져올 수 있다. 주의할 점은 인덱스가 감소하므로 시작 ..
Python의 인터프리터(interpreter) 언어적 특성 * Python과 C, C++의 차이 컴파일러 쓰는 언어와 인터프리터를 쓰는 언어의 차이 - 컴파일러는 소스 코드를 기계어로 미리 번역해 둘 때 사용하는 프로그램이다. 속도 더 빠르다. (C, C++) - 인터프리터는 실행이 필요할 때 소스 코드를 실시간으로 해석해서 그에 맞는 명령을 컴퓨터에게 지시하는 프로그램이다. (Python) ​ ​ * 모듈과 시작점 if __name__ == '__main__': ​ __name__: 모듈의 이름이 저장되는 변수 import로 모듈을 가져왔을 때 모듈의 이름이 들어간다 하지만 python 인터프리터로 스크립트 파일을 실행하면 모듈의 이름이 아니고 __main__이 들어간다. 어떤 스크립트 파일이든 파이썬 인터프리터가 최초로 실행한 스크립트 파일의 __name__..
Python에서 파일 읽기, 쓰기 * 파일 쓰기 - 문자열 f = open("/Users/temp/Desktop/new.txt", "w") a = "Hello World!\n" f.write(a) f.close() * 파일 쓰기 - 리스트 b = ['123', 'abc', '456\n'] f = open("/Users/temp/Desktop/new.txt", "a") f.write('\n'.join(b)) f.close() c = ['def', '789', 'ghi'] f = open("/Users/temp/Desktop/new.txt", "a") f.writelines(c) f.close() * 파일 열기 모드 옵션 - 파열 일기 모드는 f = open("/Users/temp/Desktop/new.txt", "w") 에서 "w"부분에 ..
numpy random(난수) sampling - np.random.choice * data sampling 이미 있는 데이터 집합에서 일부를 무작위로 선택하는 것을 샘플링이라고 한다. 샘플링은 choice 명령을 사용한다. np.random.choice(a, size=None, replace=True, p=None) - a: 배열이면 원래의 데이터, 정수이면 arange(a)로 데이터 생성 - size: 정수, 샘플 숫자 - replace: boolean, True이면 한 번 선택한 데이터를 다시 선택 가능 - p: 배열, 각 데이터가 선택될 수 있는 확률 import numpy as np np.random.choice(5, 3, replace=False) # array([2, 1, 3]) np.random.choice(5, 10) # array([0, 4, 1, 4, 1, 2, ..