C공부 [1. C 복습]
💻 0. 자료형
C언어에는 여라가지 자료형이 있다. 정수형, 실수형 여기서 문자는 정수형에 속한다.
가장 기본적인 지식인 컴퓨터는 모든 데이터를 0,1로 저장하는데 이것에 대한 규칙, 약속이 존재해야 한다.
만약 10101010(1byte)를 실수, 정수등 다양한 자료형 즉 데이터 타입에 대입하면 각각 전혀 다른값이 출력된다.
컴퓨터와 사용자가 원하는 값을 출력해줄 수 있게 해주는 것이 바로 자료형이다. 자료형은 크기에 따라 전부 다르고 해석되는 방식도 다르기 때문에 사용자가 미리 숙지해야한다.
살짝 헷갈리는 부분이 bool형이 없다는 점? 이다.
사실 그렇게 크게 상관은 없다 int형으로 1 or 0을 대입하여 사용해도 되니 그렇게 문제가 되지 않지만 메모리 부분에서는 차이가 난다는 점을 알게되었다.
또한, char형역시 정수형 변수로 분류되며 문자열은 따로 지정없이 char형 배열로 선언하여 이용한다는 점 역시 기억났다..
공부하거나 개발할 때 자주 까먹게 되는 서식지정자는 앞으로도 계속 찾아볼 것 같다.
💻 1. 비트연산자
비트연산자를 다루기 앞서 우선 자료형중 가장 작은 메모리크기의 char형은 1바이트로 총8비트로 이루어져 있다.
비트는 각 2진수로 표현되며 0 or 1을 저장하는 작은 공간이다.
따라서 표현할 수 있는 게 2가지 0아니면 1이기 때문에 총 8개 2의 8승이다.
이는 256가지의 경우의 수를 표현가능하다고 생각하면 된다. char형은 음수,양수가 있기 때문에 총 -128~+128까지 표현이 가능한 것
또한 비트를 공부하면 자료형 표현에서 오버플로우라는걸 알게 되는데 자세한건 구글링을 통해 알아보는것이 좋다. ++2의 보수법
위 사진이 비트연산자인데 많이 사용할 일은 없지만 내부적인 값 자체를 바꾸거나 비트를 건드리는 부분이기에 알고 넘어가면 좋겠다고 생각한다.
여기서 중요하게 사용하는게 있는데 바로 <<=
=>>
연산자이다.
이 연산자는 빠른 제곱연산이 가능하여 그래픽쪽에 자주 쓰인다고 한다..
원리는 위쪽에서 언급한 오버플로우(언더플로우)를 이용한 것!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a;
scanf("%d",&a);
printf("%d", a<<1);
return 0;
}
이 코드로 설명하자면 입력한 수 에 2배를 출력하는 c소스코드이다.
만약 여기서 a<<1
이 아닌 a<<2
라면 제곱 4배를 출력하게 된다.
그럼 반대로 a>>1
은 반으로 나눈 값 (실수일 경우 반올림)으로 계산된다.
2. C언어의 표준 규격
- version 1: 1988년에 미국 표준화기구(ANSI)에 의해 표준화가 진행되었고 바로 1년 뒤인 1990년에 국제표준화기구(ISO)에 의해 표준화가 진행되었다. 표준화가 진행된 연도를 기준으로 ‘C89’ OR ‘C90’이라고 불린다.
- version 2: 1999년에 국제 표준화기구에 의해 다시 한 번 표준화가 진행되었습니다. 표준화가 진해된 연도를 기준으로 ‘C99’라고 부릅니다.
- version 3: 2011년에 국제 표준화기구에 의해 표준화가 진행되었습니다. 이 역시 진행된 연도를 기준으로 ‘C11’이라고 부릅니다.
생각과 다르게 90 -> 99 -> 11 순서로 최신 표준 규격이라는게 신기하다.
++ 공부하며 부족한 부분있을 때 마다 추가 업로드
https://www.youtube.com/watch?v=q6fPjQAzll8 - C언어의 전체적인 강의내용을 담고있습니다.
두들낙서의C/C++한꺼번에 배우기 - 중점으로 학습할 책입니다.
댓글남기기