E.dolgormaa
Программчлалын хэл
засварлахBitwise Операторууд & мөн | хэрэв та өмнө үзсэн оператор нэмэлт зорилготой : Тэд тоон утгууд дээр үйл ажиллагааг хийж гүйцэтгэхэд ашиглагдаж болно.Ийм байдлаар ашигласан үед, тэд харин хувьсагчид, гэх мэт Bitwise оператор гэж нэрлэдэг юм утгаас нь хувьсагчид хадгалж битийн цуврал үйл ажиллагааг явуулдаг юм.Энэ хэсэгт та C# хэл дээр тодорхойлогдсон эдгээр болон бусад bitwise оператор дээр харагдах болно. Энэ функцийг ашиглахаас гадна математик программуудын хөгжилд нилээн ховор байдаг.Тиймээс энэ хэсэгт үүнийг туршиж байгаа юм. &мөн | Эргээд харгалзан үзэе. Эхний гишүүн хэсэг тус бүр 2-догч гишүүн ижил байрлал бит нь үр дүнд үнэ цэнийн 1 байранд бит үр дүнд утга томилогдсон байгаа,энд үзүүлсэн байгаа:
| Ижил төстэй, гэхдээ үр дүнгийн битүүд өөр байдаг.
Жишээ нь энд үзүүлсэн үйл ажиллагааг авч үзвэл :
-
Caption1
-
Caption2
-
Caption1
-
Caption2
</gallery> int result , op1 op2 op1=4; op2=5; result=op1 & op2;
Энэ тохиолдолд тус тус 100, 101 байдаг op1 болон op2 2-тийн төлөөллийг авч үзэх ёстой.
Үр дүнг дараах байдлаар эдгээр 2 төлөөлөл түүнтэй түүнтэй тэнцэх албан тушаалд 2-тын оронтой харьцуулах замаар олж авсан бол:
Үр дүнгийн хамгийн зүүн талын хэсэг op1 болон op2 нь хамгийн зүүн талын бит аль аль нь 1 эсвэл 0 өөрөөр бол:
Ингэснээр дараагийн хэсэг 1 op1 болон op2 дараагийн бит аль аль нь 1 эсвэл 0 өөрөөр бол:
Үлдсэн бит нь үргэлжлүүлнэ.
Энэ жишээ дээр op1 болон op2 нь хамгийн зүүн талын бит аль аль 1 байдаг үр дүнд зүүн талын арай илүү 1 байж болох юм.
Дараагийн бит аль аль 0 байдаг .3 дахь бит тус бүр 1 ,0 байдаг тул үр дүнгийн 2 дахь болон 3 дахь бит нь 0 байх болно.
2-тийн төлөөлөл эцсийн үр дүнгийн утгыг 100нь их байгаа учраас үр дүн нь үнэ цэнийг 4 оноосон байдаг.
Энэ дараах тэгшитгэлийг графикаар харуулав:
| Та ашиглах бол тэр үйл явц тохиолддог оператор, энэ тохиолдолд бусад тохиолдолд үр дүнгийн хэсэг тус бүрт 1 байрлалд гишүүн битийн аль 1 бол дараах тэгшитгэлийн харуулсан шиг :
Та ч мөн адил арга замаар, үр дүн бит бүр нь 1 бол нэг буюу ижил байрлалд 1 дэх Гишүүн битийн бусад боловч аль аль нь биш юм дараахь хүснэгтэд харуулсан шиг дахь операторыг ашиглаж болно:
C # нь бас unary bitwise оператор (~), түүний бит бүрийг сэлгэн өөрийн Гишүүн дээр ажилладаг ашиглах боломжийг олгодог үр дүн 0 Гишүүн нь бит тус бүр 1 утгыг бүхий хувьсах болон эсрэгээр байдаг болохоор . Энэ нь дараах хүснэгтэд харуулав:
Арга зам нь бүхэл тоо хадгалагдаж байна. NET, хоёртын нэмэлт гэгддэг ~ unary оператор ашиглан бага зэрэг хачин харагдах үр дүнд хүргэж чадна гэсэн үг юм. Хэрэв та INT төрөл нь 32-битийн тоо юм гэдгийг санаж байгаа бол, жишээ нь, дараа нь ~ оператор та нар юу болж байгааг харахын тулд хувь нэмрээ оруулах боломжтой хүмүүсийн битийн бүх 32-нд ажилладаг гэдгийг мэдэж. Жишээ нь, түүний бүрэн хоёртын төлөөлөл 5 дугаар дараах байдалтай байна: 000000000000000000000000000000101 Энэ тоон нь -5 байна: 111111111111111111111111111111010 Ер нь 2 улсын бүрэлдэхүүн систем (-х) (~x+1) гэж тодорхойлсон байна. Энэ нь сондгой юм шиг санагдаж болно, Гэвч энэ тоо нэмж ирэх үед энэ систем нь маш их ач холбогдолтой юм. Жишээ нь : нэмж 10, -5,( энэ эь 10-аас 5-ийг хасна) 2-тийн хэлбэрээр нь иймэрхүү харагдаж болно.
+0000000000000000000000000000000000101 1111111111111111111111111111111111011 = 1000000000000000000000000000000000101 ТАЙЛБАР: Хэрэв та 5-хоёртын төлөөлөл нь үлдсэн гэх ~1 = Үр дүн -2 сондгой харагдах болно, харин суурь бүтэц энэ үр дүн хүчээр ийм байна. Тэд мэдээллийг хадгалж бие даасан хувьсагч нь битүүдийг ашиглан хялбар аргыг идэвхжүүлэх, учир нь та энэ хэсэгт харсан bitwise үйл ажиллагаа нь зарим тохиолдолд маш ашигтай байдаг. Улаан, ногоон, цэнхэр агуулгыг тодорхойлох гурван битүүдийг ашиглан өнгө нь энгийн төлөөллийг авч үзье. Та дараах хүснэгтэд үзүүлсэн тохиргоонуудын нэгэнд гурван битүүдийг өөрчлөхийн тулд бие даан эдгээр битүүдийг тохируулж болно:
Та төрөл INT нь хувьсагчийн эдгээр утгуудыг хадгалах гэж бодъё. 0 утга бүхий INT хувьсагч - - хар өнгө оноос эхлэн та энэ мэт үйл ажиллагааг хийж болно: