본문 바로가기

자바 기초

정수형(Integer Type) 변수의 특징

1. 양의 정수를 표현하는 방식

byte형 변수 byteNum에 5을 저장하면 

 

byte byteNum = 5;

 

메모리에 1byte(8bit)의 공간이 할당되고

최상위 첫번째 비트는 양수(0), 음수(1)를 나타내는 부호비트

그리고 정수값을 2진수로 저장할 수 있는 7개의 비트로 구성됩니다.

 

부호비트 데이터
0 0 0 0 0 1 0 1

위와 같은 형식으로byte ~ long 까지 저장할 수 있는 정수 값의 크기가 결정됩니다.

 

 

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

byte형 변수에 1을 입력하면 00000001이 저장됩니다.

0 0 0 0 0 0 0 1

그렇다면 -1은 어떻게 저장될까요?

부호비트를 1로 바꾸고 10000001로 저장될까요?

1 0 0 0 0 0 0 1

위에서 두 수를 더하면 1 + (-1) = 0 이 나올까요?

1 0 0 0 0 0 1 0

위의 결과값이 0이 아닌것은 확실히 알수 있습니다.

그래서 정수형 변수의 음의 정수 표현은 양의정수 값의 2에 보수를 취하여 표현합니다.

 

1) 1의 보수 구하기

양의 정수 1의 1의 보수를 구합니다.

1의 보수는 각 비트별로 0을 1로 1을 0으로 변경하여 구합니다.

0 0 0 0 0 0 0 1

양의 정수 1의 1의 보수

1 1 1 1 1 1 1 0

2) 2의 보수 구하기

위에 구한 1의 보수에 더하기 1을 해준 결과값이 2의 보수입니다.

양의 정수 1의 2의 보수는 

1 1 1 1 1 1 1 1

 

그럼 이제 위에서 계산했던 1 + (-1) = 0의 계산을 다시 해보죠

0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0

8비트를 넘어가는 1은 올림수 버림으로 버려지고 byte형 변수에는 0이 저장되게 됩니다.

 

 

 

3. 기본 타입을 지원하는 클래스

기본타입 지원 클래스 최대값 상수 최소값 상수
byte Byte Byte.MAX_VALUE Byte.MIN_VALUE
short Short Short.MAX_VALUE Short.MIN_VALUE
int Integer Integer.MAX_VALUE Integer.MIN_VALUE
long Long Long.MAX_VALUE Long.MIN_VALUE
float Float Float.MAX_VALUE Float.MIN_VALUE
double Double Double.MAX_VALUE Double.MIN_VALUE

 

3. MAX_VALUE 와  MIN_VALUE 출력앱 만들기

1) activity_java_variable.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".JavaVariableActivity">

    <TextView
        android:id="@+id/byte_text_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintHorizontal_weight="3"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="@id/byte_min_text_view"
        app:layout_constraintEnd_toStartOf="@id/byte_max_text_view"
        android:text="byte"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="16dp"
        android:background="#039BE5"
        android:textColor="#FFFFFF"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:gravity="center"/>

    <TextView
        android:id="@+id/byte_max_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintHorizontal_weight="8"
        app:layout_constraintTop_toTopOf="@id/byte_text_view"
        app:layout_constraintStart_toEndOf="@id/byte_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        android:background="#D2D2D2"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="16dp"/>

    <TextView
        android:id="@+id/byte_min_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toEndOf="@id/byte_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/byte_max_text_view"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginTop="2dp"
        android:background="#ECECEC"
        android:layout_marginRight="16dp"/>


    <TextView
        android:id="@+id/short_text_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintHorizontal_weight="3"
        app:layout_constraintTop_toBottomOf="@id/byte_text_view"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="@id/short_min_text_view"
        app:layout_constraintEnd_toStartOf="@id/short_max_text_view"
        android:text="short"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="2dp"
        android:background="#039BE5"
        android:textColor="#FFFFFF"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:gravity="center"/>

    <TextView
        android:id="@+id/short_max_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintHorizontal_weight="8"
        app:layout_constraintTop_toTopOf="@id/short_text_view"
        app:layout_constraintStart_toEndOf="@id/short_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        android:background="#D2D2D2"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="16dp"/>

    <TextView
        android:id="@+id/short_min_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toEndOf="@id/short_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/short_max_text_view"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginTop="2dp"
        android:background="#ECECEC"
        android:layout_marginRight="16dp"/>

    <TextView
        android:id="@+id/int_text_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintHorizontal_weight="3"
        app:layout_constraintTop_toBottomOf="@id/short_text_view"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="@id/int_min_text_view"
        app:layout_constraintEnd_toStartOf="@id/int_max_text_view"
        android:text="int"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="2dp"
        android:background="#039BE5"
        android:textColor="#FFFFFF"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:gravity="center"/>

    <TextView
        android:id="@+id/int_max_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintHorizontal_weight="8"
        app:layout_constraintTop_toTopOf="@id/int_text_view"
        app:layout_constraintStart_toEndOf="@id/int_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        android:background="#D2D2D2"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="16dp"/>

    <TextView
        android:id="@+id/int_min_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toEndOf="@id/int_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/int_max_text_view"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginTop="2dp"
        android:background="#ECECEC"
        android:layout_marginRight="16dp"/>


    <TextView
        android:id="@+id/long_text_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintHorizontal_weight="3"
        app:layout_constraintTop_toBottomOf="@id/int_text_view"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="@id/long_min_text_view"
        app:layout_constraintEnd_toStartOf="@id/long_max_text_view"
        android:text="long"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="2dp"
        android:background="#039BE5"
        android:textColor="#FFFFFF"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:gravity="center"/>

    <TextView
        android:id="@+id/long_max_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintHorizontal_weight="8"
        app:layout_constraintTop_toTopOf="@id/long_text_view"
        app:layout_constraintStart_toEndOf="@id/long_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        android:background="#D2D2D2"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="16dp"/>

    <TextView
        android:id="@+id/long_min_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toEndOf="@id/long_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/long_max_text_view"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginTop="2dp"
        android:background="#ECECEC"
        android:layout_marginRight="16dp"/>


    <TextView
        android:id="@+id/float_text_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintHorizontal_weight="3"
        app:layout_constraintTop_toBottomOf="@id/long_text_view"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="@id/float_min_text_view"
        app:layout_constraintEnd_toStartOf="@id/float_max_text_view"
        android:text="float"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="2dp"
        android:background="#039BE5"
        android:textColor="#FFFFFF"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:gravity="center"/>

    <TextView
        android:id="@+id/float_max_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintHorizontal_weight="8"
        app:layout_constraintTop_toTopOf="@id/float_text_view"
        app:layout_constraintStart_toEndOf="@id/float_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        android:background="#D2D2D2"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="16dp"/>

    <TextView
        android:id="@+id/float_min_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toEndOf="@id/float_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/float_max_text_view"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginTop="2dp"
        android:background="#ECECEC"
        android:layout_marginRight="16dp"/>


    <TextView
        android:id="@+id/double_text_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintHorizontal_weight="3"
        app:layout_constraintTop_toBottomOf="@id/float_text_view"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="@id/double_min_text_view"
        app:layout_constraintEnd_toStartOf="@id/double_max_text_view"
        android:text="double"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="2dp"
        android:background="#039BE5"
        android:textColor="#FFFFFF"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:gravity="center"/>

    <TextView
        android:id="@+id/double_max_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintHorizontal_weight="8"
        app:layout_constraintTop_toTopOf="@id/double_text_view"
        app:layout_constraintStart_toEndOf="@id/double_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        android:background="#D2D2D2"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="16dp"/>

    <TextView
        android:id="@+id/double_min_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toEndOf="@id/double_text_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/double_max_text_view"
        android:padding="8dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:layout_marginLeft="2dp"
        android:layout_marginTop="2dp"
        android:background="#ECECEC"
        android:layout_marginRight="16dp"/>

</androidx.constraintlayout.widget.ConstraintLayout>

 

2) JavaVariableActivity.java

package com.example.javavariable;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class JavaVariableActivity extends AppCompatActivity {

    TextView byteMaxTextView;
    TextView byteMinTextView;

    TextView shortMaxTextView;
    TextView shortMinTextView;

    TextView intMaxTextView;
    TextView intMinTextView;

    TextView longMaxTextView;
    TextView longMinTextView;

    TextView floatMaxTextView;
    TextView floatMinTextView;

    TextView doubleMaxTextView;
    TextView doubleMinTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_java_variable);
        byteMaxTextView = findViewById(R.id.byte_max_text_view);
        byteMinTextView = findViewById(R.id.byte_min_text_view);

        shortMaxTextView = findViewById(R.id.short_max_text_view);
        shortMinTextView = findViewById(R.id.short_min_text_view);

        intMaxTextView = findViewById(R.id.int_max_text_view);
        intMinTextView = findViewById(R.id.int_min_text_view);

        longMaxTextView = findViewById(R.id.long_max_text_view);
        longMinTextView = findViewById(R.id.long_min_text_view);

        floatMaxTextView = findViewById(R.id.float_max_text_view);
        floatMinTextView = findViewById(R.id.float_min_text_view);

        doubleMaxTextView = findViewById(R.id.double_max_text_view);
        doubleMinTextView = findViewById(R.id.double_min_text_view);

        byteMaxTextView.setText(String.valueOf(Byte.MAX_VALUE));
        byteMinTextView.setText(String.valueOf(Byte.MIN_VALUE));

        shortMaxTextView.setText(String.valueOf(Short.MAX_VALUE));
        shortMinTextView.setText(String.valueOf(Short.MIN_VALUE));

        intMaxTextView.setText(String.valueOf(Integer.MAX_VALUE));
        intMinTextView.setText(String.valueOf(Integer.MIN_VALUE));

        longMaxTextView.setText(String.valueOf(Long.MAX_VALUE));
        longMinTextView.setText(String.valueOf(Long.MIN_VALUE));

        floatMaxTextView.setText(String.valueOf(Float.MAX_VALUE));
        floatMinTextView.setText(String.valueOf(Float.MIN_VALUE));

        doubleMaxTextView.setText(String.valueOf(Double.MAX_VALUE));
        doubleMinTextView.setText(String.valueOf(Double.MIN_VALUE));
        
    }
}

 

 

3) 실행결과

 

 

 

https://youtu.be/5eKQpJd0pgw

 

 

https://youtu.be/gbkb72vq_Hg

 

 

 

https://youtu.be/URZQYd3EYF4

 

 

https://youtu.be/a6hqTH_Ok_s

 

'자바 기초' 카테고리의 다른 글

메소드(Method)  (0) 2020.03.17
실수형(Floating point type) 변수의 특징  (0) 2020.03.13
데이터형(Data Type)과 입력값(Literal)  (1) 2020.02.11
변수(Variable)란?  (1) 2020.02.10
주석(Comments)  (0) 2020.02.07