什么是装配班次?
我正在阅读此文档: http://www.fadden.com/techmisc/hdc/ Lesson11.htm
他在其中说道:
问题是,我们不知道需要多长时间 这些都是。所以,我们对长度进行编码 使用我们看到的一元编码 首先(为清楚起见添加冒号):
值二进制编码 1 1: 2 01:0 3 01:1 4 001:00 5 001:01 16 00001:0000 64 0000001:000000 256 000000001:00000000
这个方法其实就是floor(log i) 0,然后是 1,然后是 不带前导 1 的二进制代码。 由于第一部分是一元计数, 中的每一位都有一个“0” 第二部分。这意味着我们可以 将数据位与 零,像这样:
值二进制编码 1 1 2 001 3 011 4 00001 5 00011 16 000000001 64 0000000000001 256 00000000000000001
它具有相同的长度,但可以是 通过简单的转变实现 例程(汇编:左移,如果 进位设置然后退出,否则移位 整数的下一位 成型)。
这个汇编转换到底是什么?它是可逆的吗?这意味着 00000000000000001 可以在没有额外数据的情况下返回到 00000000100000000 吗?
装配班次的动画效果会很棒。谢谢
I was reading this document: http://www.fadden.com/techmisc/hdc/lesson11.htm
In it he stated:
Problem is, we don't know how long
these are. So, we encode the length
with the unary coding we looked at
first (colons added for clarity):value binary coding 1 1: 2 01:0 3 01:1 4 001:00 5 001:01 16 00001:0000 64 0000001:000000 256 000000001:00000000
This method is actually floor(log i)
zeros, followed by a 1, followed by
the binary code without the leading 1.
Since the first part is a unary count,
there is one '0' for every bit in the
second part. This means we can
intersperse the data bits with the
zeros, like this:value binary coding 1 1 2 001 3 011 4 00001 5 00011 16 000000001 64 0000000000001 256 00000000000000001
This has the same length, but can be
implemented with a simple shift
routine (assembly: shift left, if
carry set then exit, else shift the
next bit into the integer we're
forming).
What exactly is this assembly shift and is it reversible, meaning can 00000000000000001 go back to 00000000100000000 without extra data?
An animation of an assembly shift would be excellent. Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个位移位操作,例如参见这篇维基百科文章: http://en.wikipedia.org /wiki/Bit_shift#Bit_shifts
移出的位通常不可恢复(旋转除外),因此操作本身是不可逆的。在某些变体中,如果您仅移位一个位位置,则移出的位的值将保存在标志寄存器中(引用中提到的进位位),您可以将其用于条件跳转。
It's a bit shift operation, see for instance this Wikipedia article: http://en.wikipedia.org/wiki/Bit_shift#Bit_shifts
The bits that get shifted out are usually not recoverable (except for rotate), so the operation is not reversible in itself. There are variants where, if you shift over just a single bit position, the value of the bit shifted out is saved in a flag register (the carry bit mentioned in your quote) where you can use it for a conditional jump.