kotlin 遍历16进制字符串"007FFFFF" 到 "FFFFFFFF"
时间: 2023-07-03 11:29:36 浏览: 211
可以使用`for`循环和`rangeTo`运算符来遍历从`007FFFFF`到`FFFFFFFF`的十六进制字符串,示例如下:
```kotlin
for (hex in "007FFFFF".toInt(16).. "FFFFFFFF".toInt(16)) {
println(Integer.toHexString(hex).toUpperCase())
}
```
其中,`"007FFFFF".toInt(16)`和`"FFFFFFFF".toInt(16)`分别将十六进制字符串转换为对应的十进制数,然后使用`rangeTo`运算符构建一个从起始值到结束值的区间。在`for`循环中,我们将区间中的每个数通过`Integer.toHexString`方法转换为十六进制字符串,并使用`toUpperCase`方法将其转换为大写字母。最终,输出的结果将会是从`007FFFFF`到`FFFFFFFF`区间内的所有十六进制字符串。
相关问题
kotlin 有符号16进制字符串"FFFCE66C" 转int
在 Kotlin 中,将有符号16进制字符串"FFFCE66C"转换为Int可以通过以下代码实现:
```kotlin
val hexString = "FFFCE66C"
val intValue = hexString.toLong(16).toInt()
```
首先,使用 `toLong(16)` 将16进制字符串转换为Long类型的十进制数。然后,使用 `toInt()` 将Long类型的数转换为Int类型。
最终的结果为-165438980。
使用kotlin完成这个题目:67. 二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入:a = "11", b = "1" 输出:"100" 示例 2: 输入:a = "1010", b = "1011" 输出:"10101" 提示: 1 <= a.length, b.length <= 104 a 和 b 仅由字符 '0' 或 '1' 组成 字符串如果不是 "0" ,就不含前导零 通过次数324,156提交次数611,721 请问您在哪类招聘中遇到此题?
以下是使用 Kotlin 编写的解法:
```kotlin
fun addBinary(a: String, b: String): String {
val result = StringBuilder()
var carry = 0
var i = a.length - 1
var j = b.length - 1
while (i >= 0 || j >= 0 || carry > 0) {
val sum = (if (i >= 0) a[i--] - '0' else 0) +
(if (j >= 0) b[j--] - '0' else 0) +
carry
result.append(sum % 2)
carry = sum / 2
}
return result.reverse().toString()
}
```
该函数接收两个二进制字符串 `a` 和 `b`,并返回它们的和。
具体实现是通过循环遍历两个字符串,从末位开始逐位相加,并记录进位。需要注意的是,如果其中一个字符串已经遍历完了,需要在计算时将其对应的位视作 0。最后将结果翻转后返回即可。
在本题中,我们可以使用 `StringBuilder` 来动态添加结果,避免多次字符串拼接带来的性能问题。
阅读全文