問題闡述
在 Java 程序中,可以通過多種方法計算出 2 乘以 16 的值,例如,使用 2 * 16 或使用2 << 4。那么算出 2 乘以 16 有效率的方法是什么呢?
由于在計算機中,位運算的效率是高的,所以要想找出有效率的運算方法,應(yīng)該從位運算入手。Java
語言的位運算中提供了左移、右移和無符號右移運算符,它們分別是
使用位運算符計算 2 乘以 16,實現(xiàn)代碼如下:
int value = 2 << 4;
說明:
上面的代碼段中2
達(dá)內(nèi)java培訓(xùn)點評:
這里主要考查的是讀者對位運算的理解程度,以及對計算機組成原理的掌握程度。計算機只能識別由0和1的二進(jìn)制數(shù)據(jù),位運算直接對數(shù)據(jù)進(jìn)行二進(jìn)制運算,而乘法運算則需要在計算機中進(jìn)行相應(yīng)的轉(zhuǎn)換,然后進(jìn)行計算才能得到正確的結(jié)果,因此速度要比左移位運算慢,但是由于計算機硬件和軟件結(jié)束的提高,使用計算機計算的速度非???,因此少量數(shù)據(jù)的乘法運算和移位運算的區(qū)別基本體現(xiàn)不出來。