作者回复: 首先,我们根据码位值找到表中的一个范围 [U+0800, U+FFFF]。然后这个范围对应着一个模板 “1110xxxx 10xxxxxx 10xxxxxx”,其中就有占位的 “x”。然后你再把上面的 “01100111 10000001” 从左到右按位依次替换到模板中的 “x”,就可以得到结果了。
作者回复: 很高兴能够帮到你 :)
作者回复: 收到你的反馈哈,会考虑的。其实对于编码你可以这样简单理解:人们通常都喜欢与文本打交道,比如字母、字符,甚至汉字等等。但是计算机只能跟 “1” 和 “0” 打交道。而“编码”就是为了将这些人类可读的“文本”依据某种规则和方式转换为 “1” 和 “0” 的序列这样的一个过程。
作者回复: 1. 这里我们做的实际上就是“符号扩展”,按照最高位符号位的情况来进行位填充。也就是如果符号位是 1,那就填充 1,否则填充 0。这样就可以保证填充后整个数字的值不会发生改变。 2. 是的。实际上这里的 7 是跟 LEB128 的编码规则有关的,2^7 也就是 128。
作者回复: 你的问题是说从含有填充字节的编码值计算原值?