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) 실행결과
'자바 기초' 카테고리의 다른 글
메소드(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 |