자료형

일정 길이(byte 단위의 크기) 메모리에 

저장된 정보를 해석하는 방법


상수 : 정해진 , 변화가 없음.

변수 : 변하는 , 정해지지 않은

   변수의 선언은 메모리의 확보를 의미함.

 

정수형(고정소수점) : 1234.0, 100.0 같이 

소수점이 고정되어 있음.(실제는 정수만 표현)


char(1byte)

short(2byte)

int(4byte), long(4byte),

long long int(8byte)

 

실수형(부동소수점) : 1.234, 12.34, 123.4 같이 

소수점의 위치가 변화.


float((4byte)

double(8byte)


float 경우 소수점 이하 표현이 6자리를 넘어가면 

자료의 신뢰성이 떨어진다.

그러므로 실수형을 사용할 경우 

소수점 15자리까지 유효한 double형을 사용한다.

 



보수와 음수표현


컴퓨터는 보수를 사용하여 음수를 표현하고

보수를 사용하여 뺄셈을 한다.


2진수 0011 10진수 '3'이다.

맨 왼쪽부터 10진수 8,4,2,1로 계산되고

2+1을 하면 3이 된다.

처음에 음수를 표현할 때는

왼쪽 비트를 1 표시하면 음수,

0으로 표시하면 양수로 표현되었는데


그렇다면 위의 2진수 0011 

왼쪽 비트를 1 바꾸면 1011이 되고

수가 '-3'으로 표현되었던 것이다

하지만 방식은 현재 사용하지 않는다.


왜냐하면 이런 경우 0 수를 

표현할 경우 2진수 0000 +0,

1000 -0이라는 숫자로 표현되게 되어 

경우의 수가 낭비되어 컴퓨터는 많은 수를 

표현하기 위해서 2 보수를 사용한다.


2의보수를 구하는 방법은

1 보수에 1 값을 더하면 

2 보수를 구할 있다.

1 보수는 0 1로, 1은 0으로 바꾸면 된다.


그래서 2진수 0011 2 보수를 구해보면

먼저 1 보수를 구하면 되는데

0 1로, 1은 0으로 바꾸면

2진수 1100 되고 여기에 1 값을 더하면

2의 보수가 되는 것이다.


그러면 2진수 1101 되고 값이

10진수 3 2 보수가 된다.


실제로 0011(3)의 값과

1101(-3)의 값을 서로 더해보면 

0 되는 것을 있다.

계산 마지막 5째 자리1은 

자리범위를 초과하므로 버려지게 된다.

 

여기서 중요한 것은 2진수 1101 

부호가 있는 자료형(signed)으로 보면

-3으로 해석될 있지만


부호가 없는 자료형(unsigned) 본다면 

13 수로 해석될 있다.


2진수 1101 계산해보면 

8+4+1 = 13이기 때문이다.


따라서 값의 정보는 하나지만

이 정보를 어떻게 해석하느냐에 따라서 

값이 다르게 해석될 수 있다.






** 잘못알고 있는 것이 있으면 댓글로 알려주시면 감사하겠습니다! **

+ Recent posts