Maaari ka bang gumawa ng bitwise multiplication?

Talaan ng mga Nilalaman:

Maaari ka bang gumawa ng bitwise multiplication?
Maaari ka bang gumawa ng bitwise multiplication?
Anonim

Ang isang numero ay maaaring i-multiply sa 2 gamit ang bitwise operator. Ginagawa ito sa pamamagitan ng paggamit ng left shift operator at paglilipat ng mga bit na natitira ng 1. Nagreresulta ito sa doble ng nakaraang numero. Ang isang program na nagpapakita ng multiplikasyon ng isang numero sa 2 gamit ang mga bitwise operator ay ibinibigay bilang mga sumusunod.

Paano ka magpaparami sa Bitwise?

Upang i-multiply sa anumang halaga ng 2 sa kapangyarihan ng N (i.e. 2^N) ilipat ang mga bit nang N beses pakaliwa Upang hatiin ang paglipat ng mga bit sa kanan. Ang mga bit ay buo 1 o 0 - hindi ka makakapag-shift ng isang bahagi ng kaunti kaya kung ang bilang na iyong pina-multiply ay hindi nagsasalik sa isang buong halaga ng N ie.

Mas mabilis ba ang pagpaparami ng Bitwise?

Bit-shifting ay mas mabilis pa rin, ngunit para sa hindi power-of-two mul/div sa oras na gawin mo ang lahat ng iyong shift at idagdag ang mga resulta, mas mabagal muli ito.

Ano ang mas mabilis na multiplikasyon o paghahati?

Ang pagpaparami ay mas mabilis kaysa paghahati. Sa unibersidad ay itinuro sa akin na ang paghahati ay tumatagal ng anim na beses kaysa sa pagpaparami. Ang mga aktwal na timing ay nakadepende sa arkitektura ngunit sa pangkalahatan ay hindi kailanman magiging mas mabagal o kahit kasingbagal ng paghahati ang pagpaparami.

Mas mabilis ba ang Bitshifting kaysa multiplikasyon?

Ang paglilipat ng mga bit pakaliwa at pakanan ay tila mas mabilis kaysa sa pagpaparami at paghahati ng pagpapatakbo sa karamihan, marahil sa lahat, ng mga CPU kung sakaling gumagamit ka ng lakas na 2. Gayunpaman, ito maaaring bawasan ang kalinawan ng code para sa ilang mambabasa at ilang algorithm.

Inirerekumendang: