[30강] https://youtu.be/yCfEDF9KP3k
1. 비트연산
fun main() {
var bit1 = 0b001101
var bit2 = 0b010100
printBinary(bit1)
printBinary(bit2)
println()
printBinary(bit1 and bit2)
printBinary(bit1 or bit2)
printBinary(bit1 xor bit2)
println()
printBinary(bit1 shl 3)
printBinary(bit1 shr 1)
}
// (i=2진수로 변환할 데이터, minLen=출력할 최소 자릿수(8))
// xxxxxxxx(10진수)
fun printBinary(i: Int, minLen: Int = 8){
var l = minLen - i.toString(2).length
while(l!=0){
print("0")
l--
}
println(i.toString(2) + "(" + i.toString() + ")")
}
00001101(13)
00010100(20)
00000100(4)
00011101(29)
00011001(25)
01101000(104)
00000110(6)
2. inv (Not, 비트 뒤집기)
inv()가 toString()으로 출력이 어려워서 만든 억지 예제
int()를 호출하면 0과 1이 각각 1과 0으로 변경된다는 것만 기억하면 됨
fun main() {
var bit1 = 0b0010000
println(bit1)
println(bit1.toString(2))
println(bit1.inv()) // 변경한 수를 10진수로 읽는다.
println(bit1.inv().toString(2)) // 부호를 출력하고 10진수 17을 2진수로 변경한다.
val r = bit1.inv() and 0b11111111
print(r.toString(2))
}
16
10000
-17
-10001
11101111
'코틀린' 카테고리의 다른 글
[kotlinlang.org] 한글화. 0 기본 구문 (0) | 2022.05.05 |
---|---|
[Youtube DiMo] 31강. 동기처리(마지막) (0) | 2022.05.03 |
[Youtube DiMo] 29강. 변수 (0) | 2022.05.03 |
[Youtube DiMo] 27-28강. 컬렉션 함수 (0) | 2022.05.03 |
[Youtube DiMo] 26강. Set / Map (0) | 2022.05.03 |
댓글