如何高效的算出2x8的值

2022-05-16 05:21:01 字數 868 閱讀 4184

原文出自:

位移演算法,如何高效的算出2*8的值,為什麼8<<1,4<<2,2<<3,1<<4的結果為16,位移演算法原理解釋:

乙個很重要的原因埋在前頭:當初筆者剛出來面試遇到這道題也曾是一臉懵逼,後來查了很多相關資料也都不全面,大多數是給答案不給解釋。筆者結合了工作中的經驗作出了如下解釋及思路:

8<<1(8轉二進位制向左移動一位)

1、最終要得出結果2*8=16

2、將16轉成二進位制結果:0000 0000 0001 0000

3、第2步前面的0根據16位數字填充也可以填充到32、64位

4、16轉二進位制步驟:

16/2=8......0

8/2=4......0

4/2=2......0

2/2=1......0

1/2=0......1

取出餘數從下往上排列出二進位制結果:10000

5、選擇最高效的二進位制數字:01000

6、即01000向左移動1位的二進位制就是10000與16的二進位制剛好對應(移出16位範圍的數字直接拋棄,移空的數字補充二進位制0)

7、再將01000轉換成十進位制(從右往左算):

0*2^0=0*1=0

0*2^1=0*2=0

0*2^2=0*2*2=0

1*2^3=1*2*2*2=8

十進位制結果:0+0+0+8=8

8、答案/結論:8<<1,4<<2,2<<3,1<<4

如果x的x次冪結果為10,你能計算出x的近似值嗎?

新開一類寫比賽題目 問題描述 如果x的x次冪結果為10,你能計算出x的近似值嗎?顯然,這個值是介於2和3之間的乙個數字。請把x的值計算到小數後6位 四捨五入 並填寫這個小數值。注意 只填寫乙個小數,不要寫任何多餘的符號或說明。比賽中使用暴力是最快的解決方法,雖然時間複雜度等增加,但在時間有限的情況下...

如何高效的學習

人的一生都需要不斷的學習,但隨著年齡的增長,可用來學習的時間越來越少,亟需找到高效的學習方法。個人認為要提供自己的學習效率,首先,要找到高質量的學習資料 其次,要掌握學習的7 2 1法則 最後,還需要利用高效的學習工具。一 如何選擇高質量的書籍 1.關注某領域專家們推薦的書籍 2.找過來人 師兄 師...

如何高效的學習

我想對於這個話題每個人有自己的見解,因每個人的習慣,生活方式的不同。學習的方法多中 多樣,有可能適合我的方法並不能適合你。其實,讀書還是要有一定天分的。雖然勤能補拙,但 是我們都知道付出和結果並不能成正比。本書講解了如何高效的學習,給我們指出了學習的脈 絡。但對我而言卻不怎麼適用。書中講到整體性學習...