개발 Study

#3 아스키코드 및 리터럴 상수

HYuk 2021. 3. 30. 21:17
728x90

컴퓨터의 음수 표현

 

컴퓨터는 모든 수를 이진수로 표현한다.

예를 들면 10 = 00001010

 

음수는 어떻게 표현 할까?

-> 2의 보수를 취하여 표현한다.

 

2의 보수란 -> 1의보수 + 1

1의 보수는 모든 비트의 반전

 

ex -10 은 10인 00001010에서 1의보수를 취하여 11110101 에서 +1을 한 값

=>11110101+1 = 11110110

 

11110110이 -10인지 확인

 

   00001010 ( 10)

+ 11110110 (-10)

_____________________

   00000000 ( 0 )

 

-----------------------------------

 

아스키코드 (ANSI)

 

0~127까지 총 7bits를 사용함

맨 앞의 비트를 parity bit(패리티 비트)라고 하며 통신 에러검출에 사용함

 

7bits로는 모든 언어표현이 불가능해 8bits 아스키코드도 나오게 되었으며,

 

그 또한 제한적으로 사용할 수 밖에 없기 때문에

 

전세계 모든 문자를 다룰 수 있게 되는 유니코드가 나오게 되었음

 

-----------------------------------

상수 및 리터럴

 

const -> 자료형 앞에 붙이게 되며, 해당 변수는 상수가 되므로 변경이 불가능함

* 이에 따른 주의점 : 처음 선언을 할때 초기화를 동시에 안해주면 그 값은 못쓰는 값이 되어버림

ex) const int i = 100; // 이때 const int i; 로 해버리면 쓰레기 값이 되어버림

 

literal (문자 그대로의)

리터럴이란 프로그램에서 사용하는 모든 숫자, 문자, 논리값(true,false)을 일컫는 말입니다.

ex)1, 2, 3, 4, ...

이 리터럴 상수가 쓰이는 즉시 임시 메모리에 등록이 되는데,

 

정수형은 기본형이 int(4bytes) 이고,

실수형은 기본형이 double(8bytes) 이다.

 

-> 정수형

예를 들면, 1+2를 연산 하기 위해 정수형은 int형으로 간주하여 1 과 2를 각각 4bytes에 넣고

3인 출력값까지 해서 총 12bytes의 임시 메모리를 사용하게 된다.

 

-> 실수형

예를 들면, 실수의 경우 기본형이 double(8bytes)이므로,  float(4bytes) 자료형을 쓸 경우

서로 사용하는 임시 메모리의 크기가 다르다.

따라서 float의 자료형을 쓸 경우, 기본 8bytes -> 4bytes로 저장을 하므로, 데이터의 손실이 발생할 가능성이 있다

그래서 임시 메모리의 크기를 4bytes만큼만 설정할 필요가 생기게 된다.

-> float 에 f를 붙이는 이유

ex) float a = 3.14f;

단순 float a = 3.14; 라고 썼을경우, 왼쪽은 float타입이지만 오른쪽은 3.14 즉 실수 기본형인 double로 인식 하기 때문에

miss match 된다.
따라서 3.14라는 숫자가 float 타입이라는 f를 붙여주는 것이다.

728x90

'개발 Study' 카테고리의 다른 글

#6 연산자(2) 및 형 변환  (0) 2021.04.01
#5 n진수 및 연산자  (0) 2021.03.31
#4 변수 표기법  (0) 2021.03.30
#2 변수 및 자료형  (0) 2021.03.29
#1 기본개념 및 시작  (0) 2021.03.26