본문 바로가기

반응형

cs50

(3)
[CS50] 포인터 C에는 포인터 라는 개념을 통해서 변수의 주소를 쉽게 저장하고 접근할 수 있다. ‘*’ 연산자는 어떤 메모리 주소에 있는 값을 받아오게 해준다. 이 연산자를 이용해서 포인터 역할을 하는 변수를 선언할 수도 있다. #include int main(void) { int n = 50; int *p = &n; printf("%p\n", p); printf("%i\n", *p); } 결과) 0x7ffc3d293cdc 50 위 코드를 보면 정수형 변수 n에는 50이라는 값이 저장되어 있다. 그리고 *p라는 포인터 변수에 &n 이라는 값, 즉 변수 n의 주소를 저장했다. int *p 에서 p앞의 *는 이 변수가 포인터라는 의미이고, int 는 이 포인터가 int 타입의 변수를 가리킨다는 의미이다. 따라서 첫 번째 p..
[CS50] 메모리 C언어로 작성한 코드가 실제로 컴퓨터 메모리에 어떻게 저장되는지 알아본다. 16진수 컴퓨터과학에서는 숫자를 10진수나 2진수 대신 16진수(Hexadecimal)로 표현하는 경우가 많다. 컴퓨터에서 데이터를 처리하기 위해 16진수를 사용할 때 장점이 있기 때문이다. 16진수와 일상생활에서 우리가 사용하는 10진수와 비교하면 그 차이를 알 수 있다. 16진수를 사용하면 10진수보다 2진수를 간단하게 나타낼 수 있다. 16진수로 값을 표현하는 방법을 이해하고 나면 16진수, 2진수, 10진수를 변환하는 프로그램을 만들어볼 수 있다. 10진수를 16진수로 JPG 이미지 파일은 항상 255 216 255 로 시작되고 이것은 10진수이다. 하지만 실제 컴퓨터 내에서는 10진수를 사용하지 않는다. 컴퓨터는 0과 1..
[CS50 2019] 2진법, 정보의 표현 컴퓨터 과학(Computer Science)은 문제를 해결하는 과정이다. 어떠한 입력(input)이 있고, 입력에 따른 결과(output)가 있다. 그리고 입력과 출력의 사이에 컴퓨터 과학이 존재한다. 즉 어떠한 문제(입력)가 있고, 문제에 대한 해결 과정 후에 문제의 답(결과)이 도출된다. 문제 해결에 앞서, 입력과 출력을 어떻게 표현할지에 대한 합의된 표현 방식의 사용이 필요하다. 2진법 컴퓨터는 0과 1로만 데이터를 표현하는 2진법으로 대화한다. 일반적으로 사용하는 10진법(0, 1, 2, 3, 4, 5, 6, 7, 8, 9 총 10개의 기호로 표현하는 것)과는 상반된다. 컴퓨터는 0과 1만으로 글자, 사진, 영상, 소리 등 다양한 것들을 저장할 수 있다. 2진법에서 각 자리수는 2의 거듭제곱을 의..

반응형