Bitwise Operator ใน Java คืออะไร? และเป็นการจำแนกประเภท (พร้อมตัวอย่าง)
เผยแพร่แล้ว: 2021-05-20Java เป็นหนึ่งในภาษาโปรแกรมที่โดดเด่นที่สุดในอินเดีย โดย มีส่วนแบ่งตลาดประมาณ 20 เปอร์เซ็นต์ ตัวดำเนินการระดับบิตใน Java เป็นสัญลักษณ์/สัญกรณ์ที่ดำเนินการตามที่ระบุบนบิตแบบสแตนด์อโลน ถ่ายทีละรายการ มันถูกใช้เพื่อจัดการแต่ละบิตของเลขฐานสองและสามารถใช้ได้กับประเภทจำนวนเต็มที่หลากหลาย - ถ่าน, int, ยาว, สั้น, ไบต์
ตัว ดำเนินการระดับบิตใน Java สามารถแบ่งออกกว้างๆ ได้เป็น 7 ประเภท:
ตัวดำเนินการ Bitwise ใน Java | สัญลักษณ์ | คำอธิบาย |
Bitwise และ | | | คงไว้เล็กน้อยในผลลัพธ์หากมีอยู่ในตัวถูกดำเนินการทั้งสอง |
Bitwise OR | & | สงวนไว้เล็กน้อยหากมีอยู่ในตัวถูกดำเนินการทั้งสองตัวใดตัวหนึ่ง |
Bitwise XOR | ^ | สงวนไว้เล็กน้อยหากมีอยู่ในตัวถูกดำเนินการเพียงตัวเดียวแต่ไม่ใช่ทั้งสองอย่าง |
การเติมเต็มระดับบิต | ~ | หรือที่เรียกว่าการเติมเต็ม 1 เพียงแค่ย้อนกลับบิตของตัวถูกดำเนินการ |
Bitwise ซ้าย SHIFT | << | บิตในตัวถูกดำเนินการทางซ้ายจะถูกเลื่อนไปทางซ้ายตามจำนวนตำแหน่งที่ระบุในตัวถูกดำเนินการทางขวา |
ลงนาม SHIFT ขวา | >> | บิตในตัวถูกดำเนินการทางซ้ายจะถูกเลื่อนไปทางขวาตามจำนวนตำแหน่งที่ระบุในตัวถูกดำเนินการทางขวา |
กะขวาที่ไม่ได้ลงนาม | >>> | เช่นเดียวกับ SIGNED RIGHT SHIFT บวกกับบิตที่เลื่อนจะถูกเติมด้วยศูนย์ |
ให้เราสำรวจรายละเอียดแต่ละ ตัวดำเนินการระดับบิตใน Java:
สารบัญ
1. หรือ (A | B)
ตารางความจริง
อา | บี | เอาท์พุต |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
ตัวอย่าง
A = 1011 1110
B = 0011 0101
A | ข = 1011 1111
ไวยากรณ์
คลาสหลัก {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int ตัวถูกดำเนินการ 1 = 190, ตัวถูกดำเนินการ 2 = 53, เอาต์พุต;
// bitwise OR ระหว่าง 190 ถึง 53
เอาต์พุต = ตัวถูกดำเนินการ 1 | ตัวถูกดำเนินการ2;
System.out.println(เอาต์พุต); // โปรแกรมพิมพ์ 191
}
}
2. และ (A & B)
ตารางความจริง
อา | บี | เอาท์พุต |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
ตัวอย่าง
A = 1011 1110
B = 0011 0101
A & B = 0011 0100
ไวยากรณ์
คลาสหลัก {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int ตัวถูกดำเนินการ 1 = 190, ตัวถูกดำเนินการ 2 = 53, เอาต์พุต;
// bitwise OR ระหว่าง 190 ถึง 53
เอาต์พุต = ตัวถูกดำเนินการ 1 | ตัวถูกดำเนินการ2;
System.out.println(เอาต์พุต); // โปรแกรมพิมพ์ 52
}
}
- รวมหรือ / XOR (A ^ B)
ตารางความจริง
อา | บี | เอาท์พุต |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
ตัวอย่าง
A = 1011 1110
B = 0011 0101
A ^ B = 1,000 0011
ไวยากรณ์
คลาสหลัก {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int ตัวถูกดำเนินการ 1 = 190, ตัวถูกดำเนินการ 2 = 53, เอาต์พุต;
// bitwise OR ระหว่าง 190 ถึง 53
เอาต์พุต = ตัวถูกดำเนินการ 1 | ตัวถูกดำเนินการ2;
System.out.println(เอาต์พุต); // โปรแกรมพิมพ์131
}
}
3. เสริม (A ~ B)
ในรูปทศนิยม ส่วนเติมเต็มระดับบิตของตัวเลข A คือ – (A+1) อย่างไรก็ตาม ในโดเมนไบนารี เราต้องคำนวณส่วนเสริมของ 1 ก่อนแล้วจึงแปลงเป็นส่วนเสริมของ 2 เพื่อให้ได้ผลลัพธ์ที่ต้องการ
1's Complement – เพียงแค่ย้อนกลับบิต ตัวอย่างเช่น:
A = 1011 1110 (190)
ส่วนประกอบ 1 ของ A = 0100 0001
ส่วนประกอบ 2 ของ A = ส่วนประกอบ 1 ของ A + 1 = 0100 0010
ไวยากรณ์
คลาสหลัก {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int ตัวถูกดำเนินการ4 = 190, เอาต์พุต;
// ส่วนเติมเต็มระดับบิตของ190
เอาต์พุต = ~ ตัวถูกดำเนินการ 4;
System.out.println(เอาต์พุต); // พิมพ์ -191
}
}
- SHIFT ซ้าย (A << 1)
สมมติว่า A = 1011 1110
<< 1 = ?
โอเปอเรเตอร์ระดับบิต นี้ ใน Java ทำให้บิตทั้งหมดเลื่อนไปทางซ้าย 1 นั่นคือผลลัพธ์คือ 0111 1100 บิตซ้ายสุด (บิตที่สำคัญที่สุดหรือ MSB) ถูกละทิ้ง และ 0 ถูกเพิ่มลงในตำแหน่งว่างขวาสุด ( บิตที่มีนัยสำคัญน้อยที่สุดหรือ LSB) สิ่งนี้ทำขึ้นสำหรับที่ว่างทุกแห่งทางด้านขวา
ไวยากรณ์
คลาสหลัก {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int ตัวถูกดำเนินการ = 3; // ไบนารี – 11
// การดำเนินการเปลี่ยนซ้าย 1 บิต
เอาต์พุต int= ตัวถูกดำเนินการ << 1;
System.out.println(เอาต์พุต); // พิมพ์ 2
}
}
4. ลงนาม SHIFT ขวา (A >>2)
ตัวดำเนินการระดับบิต นี้ ใน Java จะเลื่อนรูปแบบบิตไปทางขวาตามจำนวนตำแหน่งที่ระบุ LSBs ถูกละทิ้งและ MSBs จะเต็มไปด้วยเครื่องหมายบิต 0 หมายถึงเครื่องหมายบวก ในขณะที่ 1 หมายถึงเครื่องหมายลบ
ไวยากรณ์
คลาสหลัก {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int ตัวถูกดำเนินการ 1 = 2;
int ตัวถูกดำเนินการ2 = -2;
// 2 บิตลงนามกะขวา
System.out.println (ตัวถูกดำเนินการ 1 >> 2); // พิมพ์ 1
System.out.println(operand2 >> 2); // พิมพ์ -1
}
}
5. กะขวาที่ไม่ได้ลงนาม (A >>>2)
การดำเนินการที่นี่คล้ายกับ SIGNED RIGHT SHIFT ทุกประการ ยกเว้นบิตซ้ายสุดที่ว่างจะถูกแทนที่ด้วย 0 แทนที่จะเป็นบิตเครื่องหมาย
ไวยากรณ์
คลาสหลัก {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
int ตัวถูกดำเนินการ = 240; // เลขฐานสอง – 1111 0000
// 2 บิต unsigned กะขวา
System.out.println (ตัวถูกดำเนินการ >>> 2); // พิมพ์ 60
}
}
เรียนรู้ หลักสูตรวิศวกรรมซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
ต้องการเชี่ยวชาญ Java และสร้างอาชีพจากมันหรือไม่? ตรวจสอบการ ติดตาม ซอฟต์แวร์และเทคโนโลยี ของ upGrad ลงทะเบียนสำหรับโปรแกรม Executive PG เป็นเวลา 13 เดือน ในการพัฒนาแบบฟูลส แตก และทำให้มือของคุณสกปรกด้วยโครงการในโลกแห่งความเป็นจริง ร่วมกับ IIIT Bangalore ที่มีชื่อเสียง คุณจะได้รับโอกาสในการเรียนรู้ภาษาและเครื่องมือการเขียนโปรแกรม 16 ภาษา และรับประกันการสัมภาษณ์งาน 3 ครั้ง
ตัวดำเนินการระดับบิตคืออะไร?
ตัวดำเนินการระดับบิตทำงานบนแต่ละบิตของตัวถูกดำเนินการ และส่งคืนผลลัพธ์ในรูปแบบ 1 และ 0 ตัวดำเนินการระดับบิตส่วนใหญ่ใช้สำหรับสร้างมาสก์ต่างๆ ซึ่งสามารถใช้เพื่อสร้างฟิลด์บิต เปลี่ยนขนาดของชนิดข้อมูล และจัดแนวประเภทข้อมูล ตัวดำเนินการระดับบิตใช้เพื่อดำเนินการแบบทีละบิตกับเลขฐานสอง ใช้เพื่อให้มีประสิทธิภาพมากขึ้นในการดำเนินการระดับบิต เราไม่สามารถใช้ตัวดำเนินการระดับบิตกับตัวแปรประเภทข้อมูลที่ไม่ใช่จำนวนเต็มได้
ตัวดำเนินการระดับบิตใน Java มีกี่ประเภท
ในภาษา Java นอกจากตัวดำเนินการเลขคณิตแล้ว ยังใช้ตัวดำเนินการระดับบิตอีกด้วย แม้ว่าจะมีตัวดำเนินการระดับบิตเพียงไม่กี่ตัว แต่ก็มีประโยชน์อย่างยิ่ง ใน Java มีโอเปอเรเตอร์หกตัว ได้แก่ Bitwise AND, Bitwise OR, Bitwise XOR, Bitwise Left Shift, Bitwise Right Shift และ Ones Complement ตัวดำเนินการเหล่านี้สามารถนำไปใช้กับประเภทจำนวนเต็ม byte, short, int, long และ char
คุณสมบัติของภาษาการเขียนโปรแกรมจาวาคืออะไร?
Java เป็นภาษาโปรแกรมเชิงวัตถุวัตถุประสงค์ทั่วไป โดยทั่วไปแล้วแอปพลิเคชัน Java จะถูกคอมไพล์เป็น bytecode ซึ่งจะถูกดำเนินการบน Java Virtual Machine Java ได้รับการออกแบบมาให้ทำงานบนแพลตฟอร์มที่หลากหลาย นอกจากนี้ยังได้รับการออกแบบเพื่อใช้ในสภาพแวดล้อมการคำนวณแบบกระจาย โปรแกรมที่เขียนด้วยภาษาโปรแกรม Java เรียกว่า Java Application หรือ Java Application Environment ภาษาโปรแกรม Java เป็นภาษาที่ทรงพลังและยืดหยุ่น แอปพลิเคชัน Java มักมีขนาดใหญ่และซับซ้อนกว่าแอปพลิเคชันเว็บทั่วไป ภาษาโปรแกรม Java เป็นภาษาเอนกประสงค์ สามารถใช้สร้างแอปพลิเคชันเพื่อวัตถุประสงค์ใดก็ได้ คุณสมบัติต่างๆ เช่น มัลติเธรด เครือข่าย ความปลอดภัย และความคงอยู่ทำให้ Java เหมาะสำหรับการใช้งานที่หลากหลาย