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