Skip to main content

Ano ang mga bitwise operator?

Sa isang programa sa computer, ang mga bitwise operator ay mga operator para sa pagmamanipula ng mga pattern ng bit sa mga expression.Bitwise at, o, eksklusibo o (xor), hindi, kanang shift at kaliwang shift ay karaniwang mga operasyon.Karamihan sa mga wika sa programming ng computer ay kasama ang lahat ng anim sa mga operator na ito.Madalas silang ginagamit para sa pagtatakda, pag -clear o pag -flipping ng mga indibidwal na piraso sa mga programa na kumokontrol sa hardware ng computer.Ang mga operator ng bitwise ay madalas ding ginagamit sa pag -encrypt ng data at mga algorithm ng compression.Ginagamit ang mga ito sa mga expression tulad ng mga operator ng aritmetika tulad ng plus o minus sign ay magiging.Ang bitwise operator at kinakatawan ng ampersand

, o sa pipe | at xor na may caret ^.Hindi, na kilala rin bilang pandagdag na operator, ay ipinahiwatig ng isang tilde ~ . Ang tamang shift operator ay gumagamit ng isang dobleng kotse na tumuturo sa kanan

.Sa kaibahan, ang kaliwang shift ay ipinahiwatig ng isang kaliwang point-point double-caret .Kasama sa Java ang isa pang tamang operasyon ng shift, na ipinakita na may isang tamang pagturo ng triple-caret <<.Hindi, ang kanang shift at kaliwang shift ay may isang tunay na operand lamang;Ang pangalawang halaga sa mga operasyon ng shift ay ang medyo bilang.Upang mas mahusay na maunawaan kung paano gumagana ang mga medyo operator, maaaring mailarawan ng isang indibidwal ang kanilang mga operand bilang binary number.Halimbawa, ang operator ng pandagdag ay dumadaloy sa bawat piraso ng nag -iisang operand nito sa kabaligtaran na estado.Ang isang isa ay nagiging isang zero at isang zero ay nagiging isa.Ang pandagdag sa 8-bit na halaga ng binary 00110101 ay 11001010. Ang at ang operator ay may dalawang operand.Sa pamamagitan ng kaunti, ang isang lohikal at operasyon ay isinasagawa gamit ang isang kaukulang bit mula sa bawat operand.Ang kinalabasan ng bawat operasyon ng bit ay inilalagay sa medyo posisyon ng pangkalahatang resulta.Halimbawa, ang at operator ay magproseso ng bit 7 ng isang operand na may bit 7 ng iba pang operand.Ang kinalabasan ay maiimbak sa bit 7 ng pangkalahatang resulta.

Sa isang at operasyon, ang parehong mga operand bits ay dapat na upang maging ang resulta ay maging isa, kung hindi man ang resulta ay zero.Halimbawa, kung ang 8-bit na mga halaga ng binary ng mga operand ay 00110101 at 11110000, ang resulta ay magiging 00110000. Ang isang karaniwang paggamit ng at operator ay upang mai-zero out ang mga partikular na bits sa resulta.Ginagawa ito sa pamamagitan ng paglalagay ng mga zero sa mga posisyon ng bit sa isa sa mga operand.Kung hindi man, ang resulta ay isa.Ang isang karaniwang paggamit ng o operator ay upang magtakda ng ilang mga piraso ng resulta sa mga.Ginagawa ito sa pamamagitan ng paglalagay ng mga nasa mga posisyon sa isa sa mga operand.Para sa operasyon ng XOR, ang resulta ay zero kung ang parehong mga operand bits ay zero o kung ang parehong mga operand bits ay isa at mdash; kung hindi man, ang resulta ay isa.ng mga posisyon ng bit.Ang isang lohikal na kanang paglipat ay gumagalaw ng isang zero sa kaliwa bilang bahagi ng shift.Ang isang aritmetika na kanang paglilipat ay kinopya ang kaliwang bit mdash; ang sign bit mdash; bago ang paglipat sa parehong posisyon pagkatapos ng paglilipat.Ang orihinal na bit ay inilipat din mismo kasama ang natitira.Alinmang uri ng kaliwang shift ay gumagalaw ng isang zero sa kanang pinakadulo.Katulad nito, ang kaliwa bago ang isang kaliwang shift ay itinapon.Hindi ito nakabalot sa kabilang dulo ng operand.

bitwise shift operations ay wika- at nakasalalay sa pagpapatupad.Halimbawa, sa C at C ++,

at

Magsagawa ng mga lohikal na paglilipat kung ang operand ay isang hindi naka -ignign na integer.Kung ang operand ay isang naka -sign integer, malamang na ang isang aritmetikong shift ay gagawin sa halip.Sa Java, ang lahat ng mga operand ay itinuturing na naka -sign, at ang mga shift ng aritmetika ayLaging gumanap sa at <<.Ang operator ay ginagamit para sa isang lohikal na tamang shift, ngunit posible pa rin na hindi sinasadyang gumawa ng isang aritmetikong tamang paglilipat sa halip nang walang maingat na pag -type.Ang ilan ay hindi naka -ignign.Ang mga operator ng bitwise at mga numerong constants sa gitna ng isang kumplikadong expression ay maaaring hindi masuri tulad ng inaasahan.Ang pangangalaga ay dapat gawin upang tukuyin ang laki at naka -sign/hindi naka -ignign na likas na katangian ng bawat dami sa expression.Maaari itong gawin gamit ang maingat na typecasting o pansamantalang mga takdang -aralin sa mga tiyak na uri ng variable sa code ng programa.