gpt4 book ai didi

Kotlin 位移

转载 作者:行者123 更新时间:2023-12-04 02:19:40 25 4
gpt4 key购买 nike

如果此答案为 Kotlin,我想转换代码:https://stackoverflow.com/a/5402769/2735398

我将其粘贴到 Intellij 中:

private int decodeInt() {
return ((bytes[pos++] & 0xFF) << 24) | ((bytes[pos++] & 0xFF) << 16)
| ((bytes[pos++] & 0xFF) << 8) | (bytes[pos++] & 0xFF);
}

Intellij 询问我是否要将其转换为 Kotlin,当我这样做时,输出是:
private fun decodeInt(): Int {
return (bytes[pos++] and 0xFF shl 24 or (bytes[pos++] and 0xFF shl 16)
or (bytes[pos++] and 0xFF shl 8) or (bytes[pos++] and 0xFF))
}

在所有 0xFF我收到此错误:
The integer literal does not conform to the expected type Byte

通过附加 .toByte()之后我能够消除这个错误。

在所有左移操作( shl )中,我收到此错误:
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 

@SinceKotlin @InlineOnly public infix inline fun BigInteger.shl(n: Int): BigInteger defined in kotlin

我无法解决这个问题...
我对 Java/Kotlin 中的位移位了解不多......
这将是什么工作 Kotlin 代码?

最佳答案

像这样显式转换:0xFF.toByte()
作为一般规则,当您需要有关错误或可能的解决方案的更多信息时,请按 Alt+Enter。

shift left 方法将一个 Int 作为参数。所以,同样的事情,转换为正确的类型。

(bytes[pos++] and 0xFF.toByte()).toInt() shl 24

关于Kotlin 位移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48552223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com