2010-08-10 89 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

是那些獲得移出的位通常是無法恢復(除了旋轉),所以操作是不可逆的本身。有一些變體,如果你只移動一個位的位置,移出的位的值被保存在一個標誌寄存器中(你的報價中提到的進位位),你可以在那裏用它作爲條件跳轉。