0.5 byte = 4 bit = 2^4 = 16개의 숫자 표현 가능 (0~15)
1 byte = 8 bit = 2^8 = 256개의 숫자 표현 가능 (0~ 255)
Hexadecimal ( Hex , 16진수)
메모리는 읽고 쓸 수 있는 바이트의 집합
(보통 위와 같은 모양을 생각하면 된다.)
Char : 0A
Short : 00 0A
Int : 00 00 00 0A
참고) 1바이트를 16진수로 표현 할 때 왜 4 비트씩 나누어서 표현하나? 라는 생각을 가져 찾아 보았다.
답은 간단하다 16진수는 한 자릿수 마다 0~15까지 표현이 가능하다. 즉 2진수로 표현 하면 2^4 = 16, 4 자리가 필요하다. 컴퓨터는 항상 2진수로 표현하기 때문에 우리가 16진수로 써도 2진수로 저장 및 변환이 된다.
메모리 주소에 붙이는 이름
(위와 같은 그림을 머리에 넣어 놓자!)
사실 CPP로 코딩 테스트 문제를 풀다 보면 값의 범위를 고려해서 풀어야 하는 문제가 있다. 다 외우지는 못 하더라도 눈에 익혀두어서 필요할 때 사용하자.
const int num = 4;
//위의 num은 4로 선언 및 초기화가 진행되었고 이후 변경이 불가능 하다c
바로 뒤의 , 단독으로 쓰일 수 있는 의미 있는 ‘최소 단위’랑 묶인다.
예전에 공부 했을 때 이 const의 위치에 따른 의미가 달라져서 많이 헷갈렸던 기억이 존재한다.
이번 기회에 한번 제대로 정리하고 넘어가 보자.
https://m.blog.naver.com/oh-mms/222044543049
https://gps-homepage.tistory.com/11
int val = 10;
const int* a = &val;
int const* b = &val;
int* const c = &val;
const int* a= &val; //일 때
*a = 4;// 오류
a = &other; // 오류 발생하지 않음.
즉, 우리는 a를 통해서 값을 변경 할 수 없는 것이지 a가 가리키는 것을 변경하지 못 하는 것이 아니다.
int val = 10;
int other = 15;
int const* b = &val;
*b = other; // b가 *b 형태일 때의 값을 변경 불가능
b = &other; // 사용가능
int* const c = &val;
int other = 15;
*c = other ; //사용가능
c = &other; //c 자체 형태일 때 값의 변경이 불가능
추후에 조금 더 이해하기 쉬운 방법이 있으면 수정해 보도록 하겠다.