Bitwise Operator ใน Java คืออะไร? และเป็นการจำแนกประเภท (พร้อมตัวอย่าง)

เผยแพร่แล้ว: 2021-05-20

Java เป็นหนึ่งในภาษาโปรแกรมที่โดดเด่นที่สุดในอินเดีย โดย มีส่วนแบ่งตลาดประมาณ 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

}

}

  1. รวมหรือ / 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

}

}

  1. 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 เหมาะสำหรับการใช้งานที่หลากหลาย