- [Java] 4. 데이터 타입과 비트, 바이트, 아스키코드2024년 04월 09일
- Song hyun
- 작성자
- 2024.04.09.:41
728x90반응형[Java] 4. 데이터 타입과 비트, 바이트, 아스키코드
1. 데이터 타입: 자바에서 자료형(Data type)은 값의 유형을 의미한다.
데이터 타입에 따라 차지하는 메모리 공간, 크기, 저장되는 방식이 달라진다.
*2.데이터 타입의 분류(Data type)
-데이터 타입에는 기본 자료형(Primitive data type)과 참조 타입(Reference Type)으로 나뉜다.-기본 자료형(Primitive data type)에는 정수형, 문자형(문자열x), 실수형, 논리형 크게 4가지로 구분된다.
각 자료형마다 담을 수 있는 값의 크기가 정해져 있다.
(1) 정수형(byte, short, int, long / Int=4byte): 정수형의 기본 연산 타입이다. 소수점 이하의 값을 가지지 않는다. (ex: 1,2,-10, 999)
(2) 문자형(Char, character / 1byte): 기본 자료형 중 문자 타입. 사실 정수형이다. 홑따옴표를 사용한다.
문자를 저장하기 위한 변수를 사용할 때 사용되며, 단 하나의 문자만을 저장할 수 있다. (ex: 가, e, A, 감...)
(3) 실수형(float, double / 4byte, 8byte): float, double 총 두 가지가 있으며, float는 4byte, double은 8byte를 차지한다. double은 용량이 커 소수점을 더욱 정확히 표현할 수 있기 때문에, 실수형의 기본 연산 타입은 double이 사용된다.
(4) 논리형(Boolean / 1byte): 논리적인 참(tryue)와 거짓(false)를 표현한다. 대부분의 프로그래밍 언어에서 불리언(Boolean)이라고 불린다. 조건문, 반복문, 논리 연산과 같은 논리적인 연산에 주로 사용된다.
-문자열(String): 두 개 이상의 문자가 연속된 형태.
-콘솔창 결과 출력: 콘솔창에서는 기본적으로 정확한 데이터 타입을 알 수 없다.
package ch01; /** * 데이터 타입이란 * 상자에 들어갈 수 있는 값의 유형과 크기를 지정하는 것 */ public class datatype1 { //코드의 시작점 public static void main(String[] args) { byte byteBox; //1바이트 ->네모칸 한 칸은 1bit->8bit->1byte short shortBox; //2바이트 ->16bite->2byte int intBox; //4바이트 ->32bit->4byte long longBox; //8바이트 ->64bit->8byte
3. 정수형과 상자의 크기
-우리가 어떤 데이터를 저장하거나,
연산해 결과를 담고 싶다면 어딘가에 메모리 공간을 만들어야 한다.
(1) Bit(비트)-컴퓨터의 최소 데이터 단위(정보의 최소 단위)로, 이진수(0,1)로 표시된다.
-1비트는 두 가지 상태를 나타낼 수 있다. (ex: on/off)
-컴퓨터의 모든 데이터와 명령은 이진수로 표현되며, 이진수의 각 자리는 비트에 해당된다.
(2) Byte(바이트)
-8개의 비트로 구성된 데이터 단위로, 1바이트는 8비트와 같다.
-1바이트는 컴퓨터에서 문자, 숫자 등의 한 개의 문자를 나타낼 때 쓰인다. (ex: 알파벳 한 글자=1바이트)
-컴퓨터 메모리에서 주소 지정의 최소 단위이며, 대부분의 컴퓨터 시스템에서는 바이트 단위로 데이터를 읽고 쓴다.
*비트는 물리적인 단위, 바이트는 논리적인 단위이다.
4. 자료와 문자표
컴퓨터에서 문자를 표현하고 처리할 때, 이진수로 변환하기 위해 문자표(아스키코드)가 사용된다.
Char형의 변수를 Int값으로 강제형변환(자료형 변환)을 하면, 아스키코드에서 대치되는 정수가 출력된다.
형변환(타입변환; promotion, casting): 변수를 다른 자료형으로 변환시키는 과정을 말한다. 형변환에는 자동(묵시적)변환과 강제형변환이 있다.
(1) 암시적 형변환/자동(묵시적)변환(promotion): 주로 메모리가 작은 타입이 큰 타입으로 변환될 때 발생한다. 이 때, 값이 변환되는 것이 아닌 값이 복사되는 것이기 때문에 메모리 손실이 일어나지 않는다.
(2) 명시적 형변환/강제형변환(casting): 주로 메모리가 큰 타입이 작은 타입으로 변환될 때 발생한다. 강제형변환은 자동변환과는 달리 캐스팅 연산자를 사용하여야 한다. 강제형변환의 경우 메모리 손실이 발생하므로, 데이터 손실이 일어나 원래 값이 보존되지 않는다. 또한 실수 타입을 정수 타입으로 변환 시 소수점 이하는 사라진다.
유니코드(unicode): 전세계의 거의 모든 문자에 고유 숫자를 부여한 암호체계. 1993년 국제 표준으로 등록되었다. 유니코드의 목적은 세계의 거의 모든 문자를 유니코드로 인코딩하는 것이다.
UTF-8: UTF-8은 가장 많이 쓰이는 가변 길이 유니코드 인코딩이다. (=전 세계에서 유니코드를 쓰기 위해 사람들이 한 약속이다.)
인코딩( Encoding / 문자->이진수): 입력받은 값을 아스키코드(숫자 코드)로 변환하는 과정이다.
디코딩( Decoding / 이진수->문자): 변환한 아스키코드를 문자표와 대조하는 과정이다. 인코딩의 종류로는 문자 인코딩, 사진/음성/영상 인코딩이 있다.
L value: 할당 (대입) 연산자의 왼쪽에 나타나는 표현식이다.
R value: 값 그 자체를 나타낸다. 실제로 값 그 자체이다.
-R value 역시 메모리 어딘가에 저장하는 것이 맞다. R value는 값을 생성하므로, 해당 값은 메모리에 저장되어야 한다.
728x90반응형'Java > 기본 개념 및 클래스' 카테고리의 다른 글
[Java] 6. 형 변환과 형 변환의 종류 (0) 2024.04.10 [Java] 5. 상수 (0) 2024.04.10 [Java] 3. 변수의 규칙 (0) 2024.04.09 [Java] 2. 변수 선언 및 사용하기 (0) 2024.04.09 [Java] 1. main 함수, 출력하기 (0) 2024.04.09 다음글이전글이전 글이 없습니다.댓글