說的權力,我有以下:移位向左實現冪對兩個JavaScript
var n = 3;
我想2^n次方。
所以我可以做:
Math.pow(2,n)
,等於8,味甜。
或者我可以這樣做:
1 << n
這也等於8,味甜。
我想描繪位的轉變。
所以我認爲個n,在該示例中等於3,二進制記數法是:
即(1 * 2^1)+(1 * 2^0)= 3
於是我做了手術1 << n
和位左移一個,我覺得1 << n
輸出,以二進制表示,是這樣的:
比特左移一個位置,替換與零的第一比特但這等於6不是8:
即(1 * 2^2)+(1 * 2^1)+(0 * 2^0)= 6
不甜,位左移我計算該1 << n
將基於我的二進制符號等於6後,1 << n
不等於8,所以我的左位移位操作的二進制記數法是不正確
我或者正在起草3位編碼的二進制符號直接和/或我不移位正確的位在我的二進制符號輸出1 << n
任何人都可以提供一個解釋我的思維過程是不正確的?
[如何顯示Shift Left Logical乘以2^n?](http:// stackoverflow。com/questions/11212510/how-to-show-that-shift-left-logical-multiply-by-2n) - 我意識到語言是不同的,但對於這個問題根本不重要。 –
是的,這是正確的。不知道你正在尋找什麼有意義的答案。應該是你可以找到綽綽有餘的谷歌搜索的東西。 – jfriend00
這個問題有點混亂,因此混淆的地方並不是100%清楚。例如,你說「我想要n^2權力」,但是「Math.pow(2,n)」是2^n,而不是n^2。稍後你會描述'1 << n',但是你的計算是針對'n << 1'。 – JJJ