본문 바로가기

Kotlin

kotlin(수치 데이터형 & 문자와 문자열형)

안녕하세요 저번 시간에는 kotlin(기본자료형 & 변수와 상수)에 대해서 공부를 해보았습니다.

오늘은 수치 데이터형과 문자와 문자열형을 알아보도록 하겠습니다. 

 

시작하기에 앞서 말씀드리고 싶은 부분이 있습니다. 저는 책을 기반으로 글을 적기 때문에 처음보신 분들은 이해하기가 힘들 수도 있습니다. 

 

https://www.youtube.com/channel/UC4xPiA5U1VjXfdoCIySduPg 이 링크에 들어가셔서 kotlin 공부를 하셨으면 좋겠습니다. 보시면 직접 교수님께서 저보다도 더 훨씬 상세하게 알려주시니까 이해하기가 더 빠르실겁니다. 꼭 시청해주셨으면 좋겠습니다. 

 

수치 데이터형

 

코틀린의 수치형은 자바의 기본 수치 자료형과 밀접하게 관련이 있습니다. 이러한 수치타입들은 그 크기만 다르고 모두 부호비트(Signed Bit)를 사용해서 +나  -, 양수와 음수를 표현한다는 점을 주의하세요. 즉, 음수 표현이 없는 unsigned는 기본타입으로 없습니다. 가장 작은 정수 수치형인 바이트 타입을 예로 살펴봅시다.

 

Byte형 값의 저장과 표현 및 Nibble

 

정수 65는 16진법 0x41, 2진법 0b01000001, 혹은 0b0100_0001 등으로 표현이 가능합니다. 바이트형에서 표현할 수 있는 경우의 수는 총 28 = 256 가지 입니다. 그런데 최상위 비트가 +- bit의 부호비트로 사용되고, 나머지 7bits가 바로 데이터비트들인 형태입니다. 즉, 정수형의 수치 표현 범위는 0을 대략 중간쯤 포함해서, 

 

-27~ 0 ~ +27-1    혹은  -128 ~ 0 ~ +127

 

가 됩니다. 양의 정수 범위쪽이 한 개가 적음을 주의해주세요 또한 1바이트(1byte)는 8bits이고 이는 4 비트 단위의 니블로 표현하면 2nibbles가 됩니다.

 

Numerics 수치 계열 기본형의 분리와 크기

 

- 정수형(Integer): Byte 8비트 < Short 16비트 < Int 32비트 < Long 64 비트

 

127, 0 ,- 128, 1996, 65535, 1234L

 

- 실수형(Real Number): Float 32비트 < Double 64 비트

 

3.14f, 100F, 3.141592, 1.23e4

 

수치형 중에서 부동소수점을 포함하는 실수형들은 그 값이 크고 작음을 표현하기 보다는 "정밀도 표현"에 사용됩니다. 더 미세한 차이의 수를 표현하는 것입니다.

 

수치형 밑줄문자 표현 (Underscore Notation)

 

그리고 자바와 마찬가지로 밑줄문자 표현(Underscore '_')으로 수치형을 좀 더 가독성이 높게 표현할 수도 있습니다. 실제 값에는 아무런 변화가 없이 그냥  표시로만 구분하는 것입니다.

 

1_000_000, 0xFFFF_9090, 0b11111111_00001111

 

소스코트

 

 

문자와 문자열형

코틀린은 자바와 마찬가지로 문자형 Char와 문자열형 String을 기본적으로 사용합니다. 문자는 단 한개의 문자를 표현하는 데이터형이고, 이러한 문자들이 여러개 모여서 표현되는 집합적인 표현이 바로 문자열입니다.

 

문자열(String)은 리터럴로 "문자들" 큰따옴표로 표현되며, 일종의 문자들의 배열(Array)입니다. 배열은 또 리스트(List)의 한 종류이기 때문에 각 문자들에는 순서번호가 있고, 문자열에 포함된 문자의 개수도 length 등으로 쉽게 체크할 수 있습니다. 그러면 소스코드를 적으면서 이해를 해보도록 하죠

 

 

fun main(){
    val a: Char = 'A'
        // 65, 0x41 코드값을 갖는 문자형을 정의
    val aCodeVal = a.toInt()
        // 문자코드를 명시적으로 Int형으로 변환 
    val b : Char = '가'
        // 유니코드로 문자형 정의
    val bCodeval = b.toInt()
    val c: Char = '\u0041'
        // unicode의 16진수 표현, 작은따옴표 주의
    
    println("a = ${a} $aCodeVal, c => $c")
    println("b = ${b} $bCodeval, c => $c")
}

 

 

 

Val 변수를 지정하고 Char형을 사용하여 문자, ASCII 코드 결과값을 도출했습니다. 이어서 다음은 String 을 사용해 보겠습니다. 

 

fun main2(){
  val d = 'A' + ' '.toInt()
    // 공백키(space)의 코드값이 32입니다.

  val e = 'a' - ' '.toInt()
    // ASCII표 unicode 참조

    println("d = ${d} ${d.toInt()}")
    println("e = ${e} ${e.toInt()}")
}

 

 

 

 

이렇게해서 kotlin(수치 데이터형 & 문자와 문자열형)의 기초를 완료했습니다. 앞으로는 시간내서 글을 적도록 하겠습니다 죄송하고 보시는 분들 정말 감사합니다.

 

오늘은 여기까지 하도록 하겠습니다. 감사합니다

 

19살 IT 개발자 포돌이였습니다.

-Coding is an Art-

-코딩을 예술이라 생각하는 사람-

 

 

'Kotlin' 카테고리의 다른 글

kotlin (기본자료형 & 변수와 상수)  (0) 2021.10.13