什么是装配班次?

发布于 2024-09-14 09:52:13 字数 854 浏览 9 评论 0原文

我正在阅读此文档: 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何时共饮酒 2024-09-21 09:52:13

这是一个位移位操作,例如参见这篇维基百科文章: 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文