티스토리 뷰

프로그래밍/Kotlin

[Kotlin] 기본 자료형 2

추억꽃 2018. 12. 25. 23:37
1. 숫자

const val decValue: Int = 100         // 10진수 표기
const val hexValue: Int = 0x100 // 16진수 표기
const val binaryValue: Int = 0b100 // 2진수 표기

const val longValue: Long = 100L // Long 타입
const val doubleValue: Double = 100.1 // Double 타입
const val floatValue: Float = 100.0f // Float 타입

const val andValue: Int = (6 and 5) // 비트 연산 AND(논리곱)
const val orValue: Int = (6 or 5) // 비트 연산 OR(논리합)
const val xorValue: Int = (6 xor 5) // 비트 연산 XOR(상호배제)
const val invValue: Int = 6.inv() // 비트 연산 NOT(부정)

const val shiftLeftValue: Int = 178 shl 2 // 왼쪽으로 시프트(부호 비트 유지)
const val shiftRightValue1: Int = 178 shr 2 // 오른쪽으로 시프트(부호 비트 유지)
const val shiftRightValue2: Int = 178 ushr 2 // 오른쪽으로 시프트(부호 비트 무시)

fun main(args: Array<String>) {
println(decValue)
println(hexValue)
println(binaryValue)
println(longValue)
println(doubleValue)
println(floatValue)

// 6&5 : 6은 이진수로 110, 5는 이진수로 101이므로 6&5의 연산은 이진수 100, 10진수 4입니다.
println("AND(논리곱) 연산 = $andValue")

// 6|5 : 6은 이진수로 110, 5는 이진수로 101이므로 6&5의 연산은 이진수 111, 10진수 7입니다.
println("OR 연산 = $orValue")

// 6^5 : 둘이 같은 값이면 거짓이고, 다른 값이면 참입니다. 6^5의 연산은 이진수 011, 10진수 3입니다.
println("XOR 연산 = $xorValue")

// 6~ : 단항연산으로 0인 자리는 1로, 1인 자리는 0으로 바꿉니다. 6의 1진보수로 취한 값으로 10진수 -7을 의미합니다.
println("NOT 연산 = $invValue")

println("왼쪽 시프트 연산 = $shiftLeftValue")
println("오른쪽 시프트 연산 = $shiftRightValue1")
println("오른쪽 시프트 연산(부호 비트 무시) = $shiftRightValue2")
}

  



2. 문자


const val charVal : Char = 'A'                  // Char 자료형
const val ascVal : Int = 65 // 문자 'A'의 아스키 코드 값
const val ascCharVal : Char = ascVal.toChar() // ascVal에 해당하는 문자를 할당

fun main(args: Array<String>) {
println(charVal)
println(ascCharVal)
}





3. 논리


const val boolVal1 : Boolean = true
const val boolVal2 : Boolean = false

fun main(args: Array<String>) {
if (boolVal1 || boolVal2) {
println("논리연산 OR")
}

if (boolVal1 && boolVal2) {
println("논리연산 AND")
}

if (!boolVal2) {
println("boolVal2가 false일 경우")
}
}




4. 문자열


val str : String = "Hello Kotlin"
val ch1 : Char = str.get(4) // ch1에 인덱스가 4인 문자 'o' 할당
val ch2 : Char = str[6] // ch2에 인덱스가 6인 문자 'K' 할당

val length : Int = 3000
val lengthText1 : String = String.format("Length: %d meters", length) // 'Length: 3000 meters'
val lengthText2 : String = "Length: $length meters" // 'Length: 3000 meters'

val strLength : String = "str TextLength : ${str.length}" // str 문자열의 길이 할당

val price : Int = 1000
val priceText : String = "Price: ${'$'}$price" // 'Price $1000 할당'

fun main(args: Array<String>) {
println(ch1)
println(ch2)
println(lengthText1)
println(lengthText2)
println(strLength)
println(priceText)
}




5. 배열


val strArray : Array<String> = arrayOf("Apple", "Banana", "Kiwi", "Strawberry") // 문자열 배열 생성
val intArray1 : IntArray = intArrayOf(1, 2, 3, 4, 5) // Int형 배열 생성(원시)
val intArray2 : Array<Int> = arrayOf(1, 2, 3, 4, 5) // Int형 배열 생성(래퍼)

fun printIntArray(arr: Array<Int>) {
for(i in arr) {
print("$i ")
}
println()
}

fun printVarArgArray(vararg args : String) {
// vararg(가변 인자) : 자바의 String... 과 같이 가변인자를 vararg 키워드를 통해 처리할 수 있다.
for(i in args){
print("$i ")
}
println()
}

fun main(args: Array<String>) {
printIntArray(intArray2) // 배열에 바로 인자를 대입하여 함수 호출
printVarArgArray(*strArray) // 스프레드 연산자를 이용하여 함수 호출
}



출처

https://kotlinlang.org/docs/reference/


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함