컴퓨터/C

(C언어)hgc 02-2

가랑비 2021. 7. 20. 14:58

데이터가 메모리에 저장되는 방식 알아보기

C 언어는 메모리에 직접 접근하거나 비트 단위의 연산을 수행함. 데이터가 메모리에 저장되는 방식을 알면 이를 잘 활용할 수 있음. 정수, 실수, 문자가 컴파일된 후에 어떤 형태로 바뀌는 지 확인해보라고 하시는군요. 

 

프로그램과 데이터

  프로그램은 일의 순서를 적은 것이고, 데이터는 프로그램이 처리하는 대상이다. C언어에서 다루는 데이터에는 정수, 실수, 문자, 문자열이 있다. 이 데이터는 변수와 상수의 형태가 있다. 변수는 길이, 넓이, 개수 등이고 상수는 원주율 값처럼 정해져있고 변하면 안되는 경우에 주로 사용한다. 

 

데이터 표현법

  정수나 상수등은 C언어에서 10진수, 8진수, 16진수, 2진수로 표현 가능하고 2진수는 비효율적이어서 8진수나 16진수를 주로 사용한다. 10진수가 아닌 수는 밑에 표시를 하는 것으로 일상에서 쓴다. 프로그래밍 언어에서는 밑수 표현이 어려우므로 10진수는 동일하게, 8진수는 0을 맨 왼쪽에, 16진수는 0x를 맨 왼쪽에 붙여 사용한다. 출력 함수를 사용시 바로 확인이 가능한데, 10진수를 다른 진수로 표현하는 것과 같이 제어문자를 적절히 쓰면 바꿔서 표현이 가능하다. %o는 8진수, %x는 16진수 소문자, %X는 16진수 대문자를 나타나게 해준다. 문자는 작은따옴표로 묶고 문자열은 큰따옴표로 묶는다. '1'은 문자 상수이고 "first"는 문자열 상수이다. "A"와 같이 문자가 하나라도 큰따옴표가 붙으면 문자열 상수이다.

 

상수가 컴파일된 후의 비트 형태

  편집기에 코드를 입력하면 모든 코드는 컴퓨터가 이해하는 형태의 아스키 코드 값으로 저장된다. 예시로 10 + 20 ; 을 입력했다면 1, 0, +, 2, 0, ; 모두 하나의 문자로 저장된다. 컴파일 과정이 없으면 코드가 컴퓨터에서 실행되지 않는 이유가 바로 이 때문이다. 컴파일 없이는 + 기호 또한 문자일 뿐인 상태이다. 컴파일을 거친 후에야 +는 연산자가 되는 것이다. 정수, 실수, 문자, 양수, 음수 등 모두 변환을 거치면 해당사항에 맞는 형태로 변환이 된다. 

떠오른 생각들

  나는 컴퓨터다 생각하고 데이터 전송 중이라는 느낌으로 읽는다고 해도 재미를 느끼긴 어렵다. 빨리 넘겨야겠다. 외운다고 평소 쓰지 않는 내용이면 까먹기 때문에 아깝다는 생각밖에 안든다. 그래서 나중에 검색해서 찾아 볼 수 있게 큰 분류만큼은 꼭 외운다. 예를 들어 '제어문자'를 알고 있으면 나중에 상세 내용을 제어문자를 검색해서 들어가서 나머지를 찾아보면 된다. 물론 저장능력이 뛰어나서 다 갖고 있다면 더 편하긴 하겠지만, 나는 안 그런가보다. 그래도 이 책, 쓸데없는 호기심은 굉장히 강력한 나로써는 재밌는 책인 것 같다.

 

 

728x90

'컴퓨터 > C' 카테고리의 다른 글

(C언어)hgc 03-2 데이터 입력  (0) 2021.07.26
(C언어)hgc 03-1 변수  (0) 2021.07.22
(C언어)hgc 02-1  (0) 2021.07.19
(C언어)hgc 01-2, ENFP 공부법(?)  (0) 2021.07.19
혼공씨 서문  (0) 2021.07.19