티스토리 뷰

1. 메모리 주소

16진수의 유용성
10진수 255 216 255
2진수 1111 1111 1101 1000 1111 1111
16진수 0xff 0xd8 0xff

 

컴퓨터 과학에서는 숫자를 2진수 대신 16진수로 표현하는 경우가 많다. 2진법으로 표현할 때에는 너무 길어진 데이터를 16진수로는 간단하게 표현할 수 있기 때문이다. 2^4 는16이므로, 4비트씩 두 덩어리로 나누어보면 0000부터 1111까지 16진수로 간단하게 표현할 수 있음을 알 수 있다. 이처럼 데이터 처리할 때 장점이 많기 때문에 16진수를 사용해 숫자를 표현하는 경우가 많다.

 

 

메모리 주소

C언어에서는 변수의 메모리 상 주소를 받기위해 & 연산자를 사용한다.

& 연산자를 통해 변수의 메모리상 주소에 값을 저장하기도 하고, 실제 주소값을 반환 받기도 한다.

#include <stdio.h>

int main(void){
  int num1;
  scanf("%d", &num1);		//40입력
  printf("%d",num1);		//40출력
  
  int num2=50;
  printf("%p\n", &num2);	//0x7ffdf9967954
  return 0;
}

 

반대로 * 를 사용해 그 메모리 주소의 실제 값을 얻어올 수도 있다.

말하자면 & 는 ~의 주소를 의미하고, * 은 ~의 주소로 이동해달라는 의미를 가진다.

#include <stdio.h>

int main(void){
  int num=60;
  printf("%p\n", &num);		//0x7fff8a26efd8
  printf("%d\n", *&num);	//60
  return 0;
}

 

 

 

[출처] 부스트코스 | 모두를 위한 컴퓨터 과학(CS50 2019)

'Computer Science > CS50' 카테고리의 다른 글

[CS50 5주차] 3-5. 문자열  (0) 2021.02.12
[CS50 5주차] 2. 포인터  (0) 2021.02.12
[CS50 4주차] 알고리즘  (0) 2021.02.12
[CS50 3주차] 배열  (0) 2021.02.12
[CS50 2주차] C언어  (0) 2021.02.12
댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday