Java/기본

[Java / 기본] 변수

2024. 12. 18. 12:38

변수

값이 변할 수 있는 데이터 공간

  • 관례에 따라 camelCase 적용

변수 선언

int a;
데이터타입 변수명;

 

변수 초기화

int a = 1;
데이터타입 변수명 = 원하는 값;

 

변수 재할당

int a = 1;
a = 2;
변수명 = 원하는 값;

데이터 타입

데이터 형태와 데이터 공간 크기 등으로 나누어짐

  `byte` `short` `int` `long` `float` `double` `char` `boolean`
크기 1byte 2byte 4byte 8byte 4byte 8byte 2byte 1bit
범위 `-128` ~ `127` `-32,768` ~ `32,767` `-2,147,483,648` ~ `2,147,483,647` `-9,223,372,036,854,775,808` ~ `9,223,372,036,854,775,807` `±1.4E-45` ~ `±3.4E38` (소수점 이하 7자리까지 정확도) `±4.9E-324` ~ `±1.8E308` (소수점 이하 15자리까지 정확도) `0` ~ `65,535` (유니코드 문자) `true` 또는 `false`
용도 매우 작은 정수 작은 정수 일반적인 정수 20억이 넘어가는 정수 정확도가 덜 중요한 실수 정확도가 중요한 실수 단일 문자 논리 값

부동소수점

컴퓨터에서 큰 실수 값을 표현하기 위한 방법

  • 정수와 소수값에 상관없이 가수부 내에서 전체 실수를 표현
  • 공간 낭비 문제 해결
  • 메모리와 처리 속도 효율성 높음
  • 정밀도 문제 있음
  • `오버플로우`, `언더플로우` 발생할 수 있음
1.xxx * 2^n

부호 비트

숫자의 부호를 나타냄 (1bit)

  • 0이면 양수 1이면 음수

 

지수

소수점의 위치를 가리키는 2의 제곱승 (8bit)

 

가수

실제 실수 데이터 비트 (23bit)

 

지수 표기법

큰 숫자나 작은 숫자를 간단하게 표기하는 방식

double num1 = 3.0e6;
double num2 = 4.5e-7;
실수en = 실수 * 10^n

 

계산 방법

  1. 음수면 1, 양수면 0을 부호 비트에 넣는다.
  2. 절대값을 이진수로 변환한다.
  3. 소수점을 이동시켜 정수를 한자리로 변환한다. (정규화)
  4. 가수부 비트에 실수값을 넣는다.
  5. 지수에 `bias`값 127을 더하고 이진수로 변환하여 지수부에 넣는다.

 

오버플로우

변수에 저장할 수 있는 값의 범위를 넘어서는 값을 대입할 때 발생

  • 값이 최소값으로 되돌아감

 

언더플로우

변수에 저장할 수 있는 값의 하한선을 넘어서려 할 때 발생

  • 값이 최대값으로 되돌아감

 

정규화

소수점을 이동시키는 것

 

지수에 bias값을 더하는 이유

가장 큰 이유는 음수 지수를 양수 비트로 표현하기 위해서이다. 지수에 bias값(127)을 더하면 8자리 비트로 표현 가능하고 0~127은 음수 128~255는 양수를 표현 할 수 있다.

 

배정도 부동소수점

위의 부동소수점 방식은 단정도 부동소수점 방식을 나타낸다. 단정도 부동소수점 방식은 대표적인 예시로 float형을 들 수 있다. 배정도 부동소수점 방식은 double형을 예로 들 수 있는데, 부호 비트는 1비트, 지수 비트 11비트, 가수 비트 52비트이다. bias값은 1023으로 고정되어 있다. 단정도 부동소수점 방식은 정밀도가 7자리이며 메모리 사용이 배정도 부동소수점 방식에 비해 적지만, 배정도 부동소수점은 15~16자리로 더 정확하고 범위가 넓다.


참고 사이트

https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%8B%A4%EC%88%98-%ED%91%9C%ED%98%84%EB%B6%80%EB%8F%99-%EC%86%8C%EC%88%98%EC%A0%90-%EC%9B%90%EB%A6%AC-%ED%95%9C%EB%88%88%EC%97%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#%EB%B6%80%EB%8F%99_%EC%86%8C%EC%88%98%EC%A0%90_%EB%B0%A9%EC%8B%9D

 

☕ 실수 표현(부동 소수점) 원리 한눈에 이해하기

실수의 2진수 표현 10진수의 정수를 2진수의 정수로 변환할 수 있듯이, 10진수의 소수를 2진수의 소수로 변환할 수 있다. 예를들어 10진수 11.765625 를 2진수 소수로 변환하는 방법은 다음과 같다. 먼

inpa.tistory.com

 

'Java > 기본' 카테고리의 다른 글

[Java / 기본] 비교, 논리 연산  (0) 2024.12.18
[Java / 기본] 산술 연산자  (0) 2024.12.18
[Java / 기본] 클래스 구조  (0) 2024.12.18
[Java / 기본] 프로젝트 생성 및 Github 연동  (0) 2024.12.17
[Java / 기본] Java 개발 환경 세팅  (0) 2024.12.17
'Java/기본' 카테고리의 다른 글
  • [Java / 기본] 비교, 논리 연산
  • [Java / 기본] 산술 연산자
  • [Java / 기본] 클래스 구조
  • [Java / 기본] 프로젝트 생성 및 Github 연동
개발하는 벌꿀오소리
개발하는 벌꿀오소리
겁없는 벌꿀오소리처럼 끊임없이 도전하자!
  • 글쓰기 관리
  • 개발하는 벌꿀오소리
    벌꿀오소리의 개발 노트
    개발하는 벌꿀오소리
  • 전체
    오늘
    어제
    • 분류 전체보기 (74)
      • Java (60)
        • 기본 (23)
        • 모듈 (8)
        • 자료구조 (5)
        • 알고리즘 (0)
        • 파일 입출력 (5)
        • JDBC (5)
        • Spring Boot (14)
      • Oracle (13)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 공지사항

  • hELLO· Designed By정상우.v4.10.3
개발하는 벌꿀오소리
[Java / 기본] 변수
상단으로

티스토리툴바