请问 java 中的 hexDigits[(bt & 0xf0) >> 4]转换成 kotlin 要如何写呢? 其中 bt 是传入的一个 bytes[],hexDigits 是一个 char[],谢谢大家
1
Leviathann 2021-12-10 16:07:10 +08:00 1
java 里
bytes 是什么 数组怎么能 & 的 |
2
Leviathann 2021-12-10 16:09:13 +08:00
kotlin 里右移是中缀 shr
|
3
hizhengfu 2021-12-10 16:09:21 +08:00
idea 有自动转换的,可以 java 写下,然后贴到 kt 文件里面,搞几次就清楚怎么写了。
|
4
heavyrainn OP @Leviathann 抱歉写错了,bt 是个 byte
|
5
heavyrainn OP @hizhengfu 自动转换出来的结果不对呀…
|
6
heavyrainn OP @hizhengfu idea 自动转化拿出来是 hexDigits[bt and 0xf0 shr 4],但是他自己都提示语法错误 o(╥﹏╥)o
|
7
Leviathann 2021-12-10 16:24:27 +08:00 via iPhone
16 进制后面 tobyte
and 完整体 toint 在右移 |
8
Leviathann 2021-12-10 16:25:15 +08:00 via iPhone
或者 bt 直接 toint 就行
|
9
mxalbert1996 2021-12-10 17:58:28 +08:00 via Android 1
hexDigits[bt.toInt().and(0xf0).ushr(4)]
注意 ushr 和 shr 的区别,这里很容易错 |
10
mxalbert1996 2021-12-10 18:01:05 +08:00 via Android
哦不过你这里应该没区别就是了
|
11
somebody 2021-12-11 01:42:32 +08:00 1
fun test(hexDigits: CharArray, bt: Byte) {
val index = (bt.toInt() and 0xF0) shr 4 hexDigits[index] } |
12
heavyrainn OP 好用了,感谢给给予帮助的人
|