java.lang.AssertionError: expected:<2008796381> but was:<-17545>现在就暴露出底层的一个问题,Java 侧使用的是 read():Int 的 InputStream,因为默认是读 unsigned byte,而我要么进行 Byte.uExt() 要么改回原来的封装,要我改回来是断然不可的
可是那样就出现
unsigned.toByte().uExt(),莫名其妙多了两个计算,该死没无符号的 Java只好弄个 typealias Nat8 = Int,然后改回来算了,免得 uExt 来 uExt 去的,而且那个还要
if <0 判符号位,相当麻烦
duangsuse::Echo
唉简单也有简单的难处,要是 Jawa 支持 unsigned integers 就不必操心了
其实支持如果仅仅有
ushl 这样的支持也不吼啊,因为数值带不带符号位说到底表示上还是有大区别现在我有点混淆 Nat8 和 byte 这两个概念的意思……
规律就是:只要和 Nat8 不直接相关的(比如一个函参名),都叫 byte……
规律就是:只要和 Nat8 不直接相关的(比如一个函参名),都叫 byte……
不像 Parser 的函数式接口可以有方便的
其实也不是不可以,但那样的收益就太低了,要同时写 from 和 to
then,这里做不到,因为既要能读又要能写,不可能单独在读的时候转化为另一种数据类型。其实也不是不可以,但那样的收益就太低了,要同时写 from 和 to
const val signBit = 0x0000_8000
internal fun Int16.uExt(): Int32 = if (this < 0) {
signBit.or(Int16.MAX_VALUE.minus(this).inv())
} else this.toInt()
正在考虑还有什么没有完成的…… 啊,是 typed array。可是这个没法完成的…… 好像也不是
Bitflags 也可以考虑一下
Bitflags 也可以考虑一下