请问 java 中的 hexDigits[(bt & 0xf0) >> 4]转换成 kotlin 要如何写呢? 其中 bt 是传入的一个 bytes[],hexDigits 是一个 char[],谢谢大家
1 Leviathann 2021-12-10 16:07:10 +08:00 ![]() 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 ![]() 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 ![]() fun test(hexDigits: CharArray, bt: Byte) { val index = (bt.toInt() and 0xF0) shr 4 hexDigits[index] } |
12 heavyrainn OP 好用了,感谢给给予帮助的人 |