¿Cómo obtiene Kotlin una cadena binaria Int y la rellena automáticamente con 0 a la izquierda?
1. Date cuenta
Al implementar la operación de bits de Kotlin, se requiere un número fijo de dígitos, por lo que al obtener una cadena binaria, es necesario agregar ceros en el lado izquierdo, entonces, ¿cómo implementarlo?
- Primero obtenga la cadena binaria de Int
fun getByteStr(byteInt: Int): String =
Integer.toBinaryString(byteInt)
La representación binaria de kotlin es: 0b00, 0b01
- Los dígitos fijos pueden usar String.format
fun getByteStr(byteInt: Int, @IntRange(from = 1) digit: Int): String =
String.format("%${digit}s", Integer.toBinaryString(byteInt)).replace(" ", "0")
- Puedes escribir otra función de extensión.
fun Int.getByteStr(): String =
UtilKInt.getByteStr(this)
fun Int.getByteStr(@IntRange(from = 1) digit: Int): String =
UtilKInt.getByteStr(this, digit)
2. Prueba
- Escribe una clase de prueba para probarlo.
class TestUtilKInt {
@Test
fun test() {
(0b11 or 0b100).getByteStr(8).printlog()
(0b11 or 0b100).getByteStr().printlog()
}
}
¡Hecho!