1. 程式人生 > >Java筆試題:最有效率的方法算出2乘以8等於幾?

Java筆試題:最有效率的方法算出2乘以8等於幾?

這道題的解法:2<<3; 表示 2向左移 3位:2 * 2^3(2的3次方) = 2 * 8;

因為一個數左移 n位,就相當於 2的 n次方,那麼一個數乘以 8只要將其左移 3位即可,而為運算子的效率最高,所以 2乘以 8等於幾的最有效方法是 2<<3。

擴充套件資料:

左移運算子:

用來將一個數的各二進位制位全部左移若干位。因為位運算比×運算快,所以可對以下程式碼進行優化,還可利用左移運算子計算a的第b個二進位制位是什麼。

運算規則:

按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。

語法格式:

需要移位的數字 << 移位的次數

例如: 3 << 2,則是將數字3左移2位

計算過程:

3 << 2 首先把3轉換為二進位制數字0000 0011,然後把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最後在低位(右側)的兩個空位補零。則得到的最終結果是0000 1100,則轉換為十進位制是12。

數學意義:

在數字沒有溢位的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,左移n位就相當於乘以2的n次方。