<1> 변수의 이해와 활용

1. 메모리 공간과 변수의 활용

변수 : 데이터 저장과 참조를 위해 할당된 메모리 공간.

메모리공간의 활용 : 데이터 저장 및 참조

" 변수는 메모리 공간 할당과 접근을 해결하기 위한 것이다"

 

2. 변수(Varible)에 대한 간단한 이해

: 변수 선언 - 메모리공간 할당 / 공간의 접근을 위해 이름 붙여짐

1) 선언 방법 : 자료형 변수이름; -> ex> int num1;

* 자료형 : 변수에 저장할 데이터 종류

*int: 10진수 정수

 

2)

저장 : 변수명 = 저장할내용 ; ex) num1=10;

참조 : 변수명을 불러주면 된다. ex) System.out.println(num1 + "은 num1이다");  -- 출력내용 : 10은 num1이다.

 

3) 선언, 저장, 참조 예시

(+) 선언과 동시에 저장 가능, 변수들의 연산 값 저장 가능

(+) 10진수 정수를 저장하는 용도로 변수를 선언했기 때문에 정수만 저장 가능하다.

 

 

 

 

 

3. 자료형의 종류와 구분.  

1) 자료형 : 데이터의 종류를 알리는 용도로 사용되는 키워드 (*키워드 : 자바의 문법을 구성하는 단어)

정수 : byte, short, int, long

실수 : (*프로그래밍에서는 실수를 정수아닌 실수를 말한다) float, double

문자 : char

참or거짓 : boolean

 

값의 번위에 따라 적절한 자료형을 선택해 사용한다.

자료형 

데이터 

메모리크기 (byte)

표현가능범위 

boolean

참과거짓 

1

true, false 

char 

문자 

모든 유니코드 문자 

byte 

정수 

 -128~127

short

2

 -32768~32767

int 

4

 -2147483648~147483647

 long

8

 -9223372036854775808~922337203854775807

 float

실수 

4

 ±(1.40x10^45 ~ 3.40x10^38)

 double

8

 ±(4.94x10^-324~1.79x10^308)

 

 

2) 실수의 표현 및 저장에서의 오차 *<3>실수 표현방식에서 다룸

 

 

->연산하는 과정이 아니라 1.0000001과 2.000000을 변수에 저장하는 과정에서 오차가 생겼다.

 

 

 

4. 변수의 이름 짓는 방법

1) 대소문자 구분

2) 숫자로 시작할 수 없음

3) $ _ 이외에 다른 특수문자 사용 x

4) 키워드는 변수의 이름으로 사용 x

 

 

 

 

<2> 정수 표현방식의 이해

 

1. 정수를 표현하는 방식 ( 1바이트를 예시로 하면 )

()()()()()()()()

 

1) 8개의 비트중에 맨 왼쪽의 비트는 부호를 의미한다.  (1은 음수, 0은 양수) MSB(Most Significant Bit)

2) 나머지 7개는 양적인 크기를 의미한다.

ex) 25(10) = 00011001(2)

 

2. 음의 정수를 표현하는 방식 :

"양의 값에 2의 보수를 취하여 얻는 값 "

 

3.

2의 보수 : 1의 보수에 1을 더한것.

1의 보수 : 2진수의 수를 반전시킨것.

 

ex ) 00000101(+5) ---1의보수----> 11111010 ----1더하기-----> 1111101

 

1111101이 -5라는 것의 증거 : 00000101 + 1111101 = 100000000 (0) (* 맨 앞의 1은 올림수(carry)버림 한다)

 

 

 

 

 

<3> 실수 표현방식의 이해

-->무한개의 실수가 존재한다. 따라서 정수의 표현방식으로 표현하기엔 한계가 크다.

 

1. 정밀도를 포기하고 범위를 넓혔다.

1) 실수의 표현을 위한 수식 : ( IEEE 754식을 이해하기 쉽게 표현한것 )

±(1.m) x 2^(e-127)

2) 위 수식에 따른 비트 구성

()    ()()()()() ()()()()()()()()()()

부호   e            m

 

3) 오차

위 수식으로 양수이고 m=1, e=0인  실수 :

비트표현 :  0 00000 0000000001 = 6.46521893 x 10^30

 

이 수에서 m 이나 e가 1씩만 차이가 나도 전체값이 아주 크게 변경된다, 즉 오차를 피할 수 없다.

 

 

= 수를 저장할 때는 위에서 보인 수식으로 그 값에 최대한 가까운 수가 만들어질 수 있도록 비트를 구성하여 저장한다.

또 참조하는 경우에도 저장된 비트를 위에 보인 수식으로 적용하여 값을 결정한다.

 

 

 

<4> 자료형의 이해

1. 정수 자료형 : byte, short, int, long

--차이 : 메모리 공간의 크기.

1) 컴퓨터의 cpu가 int형 정수연산을 가장 고속으로 처리하게끔 설계가 되어있기 때문에 연산을 하게 될 경우 long을 제외한 모든 정수 자료형이 int로 변환이 된다. 따라서 연산을 할 경우 int를 사용하는 것이 효율적이다. 

* long : int로 변환하면 데이터손실이 발생하기 때문에 변환이 일어나지 않는다. 

 

2) byte 와 short : 연산이 아닌 데이터가 지니는 값 자체가 중심이 되는 경우에 쓰인다. 많은 숫자 데이터들이 저장될때

 

2. 실수 자료형 float, double

- 크기의 차이가 있지만 float도 충분한 값의 표현범위를 가진다.

- 정밀도가 선택의 기준이 된다.

- float : 소수점 6자리의 정밀도 , double : 소수점 15자리의 정밀도

* 하지만 double도 15자리 아래에서 오차가 생겼을때 연산을 하게 되면 소수점 15자리보다 더 앞에서 오차가 발생할 수 있다.

 

 

3. 실수에 대한 e표기법과 정수에 대한 16진수 8진수 표기법

  

 

 

1) e±n : x 10의 ± n 승

2) 16진수 : 0x로 시작하면 16진수 표현으로 해석된다

3) 0으로 시작되면 8진수 표현으로 해석된다

 

 

3. 문자자료형 char

1) 유니코드 (unicode) 라는 세계의 모든 언어를 표현할 수 있는 문자체계를 사용한다. (16진수로 되어있다)

2) 문자 하나를 해당 변수에 저장하면 실제로는 문자의 유니코드 값이 저장된다. 

3) 문자는 작은 따옴표로 표시된다.

4) System.out.println은 char형 데이터를 적절히 출력해낸다. 

ch3 : 65는 16진수로 0x41 (unicode A)

ch4: 54620은 16진수로 0xD55C (unicode 한)

 

  * 해당 국가의 폰트가 설치되어 있어야 정상척인 출력을 보인다.

 

4. boolean (논리형)

true(참)와 false(거짓) 출력

b1, b2 : true 와 false를 저장하는 데이터공간이므로 초기화가 잘 되었고 출력할때 저장한 값 그대로 출력된다.

3<4 & 4<3 : 연산 결과가 참이냐 거짓이를 출력한다.

 

*반환 : 연산의 결과로 값이 만들어졌다

 

 

 

 

'언어 > JAVA' 카테고리의 다른 글

chapter4. 연산자(Operator) (2)  (0) 2017.04.12
chpter4. 연산자(Operator)  (0) 2017.04.07
chapter3. 상수와 형변환(Type Casting)  (1) 2017.04.06
chapter1 Java의 시작(2)  (0) 2017.04.04
chapter1. java의 시작(1)  (0) 2017.04.04

+ Recent posts