2010-08-10 36 views
1

我读这个文件:http://www.fadden.com/techmisc/hdc/lesson11.htm什么是装配班?

他在文中说:

问题是,我们不知道 多久,这些都是。因此,我们编码具有我们看 第一个(加入为了清楚冒号)的一元译码长度 :

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 

这种方法实际上是地板(日志I) 零,随后是1,接着 二进制代码没有前导1. 由于第一部分是一元计数,所以 第二部分中的每个位都有一个“0”。这意味着我们可以 与 零点缀数据位,如下所示:

value  binary coding 
1   1 
2   001 
3   011 
4   00001 
5   00011 
16  000000001 
64  0000000000001 
256  00000000000000001 

这具有相同的长度,但也可以是 用一个简单的移 例程(组件实现:左移,如果 进设置然后退出,否则将 下一位移入我们正在形成的整数 )。

这个程序集移位到底是什么,它是可逆的,意味着00000000000000001可以返回00000000100000000没有额外的数据?

装配班的动画效果非常好。由于

+0

http://en.wikipedia.org/wiki/Bit_shift#Bit_shifts – burningstar4 2010-08-10 18:08:39

+0

这不是一个“组装班次”。他意味着它可以在典型的汇编代码中轻松实现。如果你不知道它是什么,它就在你的头上。 – 2010-08-10 18:19:17

回答

1

这是一个移位操作,例如见这个维基百科文章:http://en.wikipedia.org/wiki/Bit_shift#Bit_shifts

是那些获得移出的位通常是无法恢复(除了旋转),所以操作是不可逆的本身。有一些变体,如果你只移动一个位的位置,移出的位的值被保存在一个标志寄存器中(你的报价中提到的进位位),你可以在那里用它作为条件跳转。