1.实现
在实现kotlin的位运算的时候需要固定位数, 所以在拿到二进制字符串的时候有左侧补0的需求, 那么如何实现呢
- 首先拿到Int的二进制字符串
fun getByteStr(byteInt: Int): String =
Integer.toBinaryString(byteInt)
kotlin 的二进制表示为: 0b00, 0b01
- 固定位数可以使用String.format
fun getByteStr(byteInt: Int, @IntRange(from = 1) digit: Int): String =
String.format("%${digit}s", Integer.toBinaryString(byteInt)).replace(" ", "0")
- 可以再写个扩展函数
fun Int.getByteStr(): String =
UtilKInt.getByteStr(this)
fun Int.getByteStr(@IntRange(from = 1) digit: Int): String =
UtilKInt.getByteStr(this, digit)
2.测试
- 写个测试类测试一下
class TestUtilKInt {
@Test
fun test() {
(0b11 or 0b100).getByteStr(8).printlog()
(0b11 or 0b100).getByteStr().printlog()
}
}
搞定!