2013-09-22 60 views
0

如果我想快速查看移位代碼的結果(左/右),我通常會寫下二進制表示並進行移位。
但是對於例如4的位移實際上是更快的做它寫十六進制表示和移動字符/數字1位的左/右?
有沒有其他的技巧呢?評估移位結果的快速方法

+0

這裏有一個技巧:寫下二進制表示,然後可視化移位。跳過寫它。或者把它帶到下一個層次:根本不寫二進制表示,可視化所有內容。非常適合小數目。順便說一下,我認爲這不是一個真正的問題 - 這不是一個編碼問題。 – harold

+0

您可以通過心臟學習16位十六進制數字和四位換算表,如乘法表。如果沒有小數零,它的大小爲3 * 15,所以不會太難。 – starblue

+0

@starblue:'四班倒心'哪4個?它由1,2,3,4,5,6,7 ... 31位移位 – Jim

回答

0

本質上,移位4位將刪除1個十六進制,因爲每個十六進制數字是二進制的4位。所以移位8位就像刪除2個十六進制,等等。

如果你願意,你也可以做同樣的類型與八進制移,雖然不是4位,我們將利用3

另外,如果你想看到十進制翻譯,而不是八進制或十六進制,您可以將移位視爲表示分割和乘法的一種方式。

隨着向左移動,您可以使用x1 < < x2作爲乘以2^x2的形式。

隨着右移,您可以使用x1 >> x2作爲除以2^x2的形式。請注意,這將適用於正數,而不是負數。