ก่อนอื่นมีตัวดำเนินการกะสามประเภทและประเภทการทำงานของพวกเขารองรับเพียงห้าประเภท: ไบต์/สั้น/ถ่าน/int และยาว
<< ตัวดำเนินการกะซ้ายซึ่งหมายถึงการย้ายข้อมูลไบนารีของตัวถูกดำเนินการทางด้านซ้ายไปทางซ้าย * บิตหลังจากกะบิตว่างจะเต็มไปด้วย 0 และบิตส่วนเกินจะถูกทิ้ง (เทียบเท่ากับพลัง n ของการคูณ 2)
>> ตัวดำเนินการ Shift ขวาข้อมูลไบนารีจะย้าย * บิตไปทางขวาเพียงแค่ลบจำนวนบิตหลังจากข้อมูลไบนารีของมัน? (มันค่อนข้างดีที่จะตั้งที่นี่ แต่ฉันเข้าใจเช่นนี้) (เทียบเท่ากับพลัง n ของ 2)
>>> ตัวดำเนินการกะขวาที่ไม่ได้ลงชื่อโดยไม่คำนึงว่าบิตสูงสุดก่อนที่จะเปลี่ยนเป็น 0 หรือ 1 บิตว่างที่สร้างขึ้นทางด้านซ้ายหลังจากกะขวาเต็มไปด้วย 0
มาใช้การสาธิตเพื่อช่วยให้เข้าใจ:
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int a = 16; int b = a << 2; // ถ่ายโอน 2 ไปทางซ้ายเทียบเท่ากับพลังของ 2 จาก 16 * 2 นั่นคือ 16 * 4 int c = a >> 2; // ถ่ายโอน 2 ไปทางขวาเทียบเท่ากับพลังของ 2 จาก 16/2 นั่นคือ 16/4 ระบบ) System.out.println ("ข้อมูลไบนารีของ A คือ:" + Integer.tobinaryString (B)); System.out.println ("ข้อมูลไบนารีของ A คือ:" + Integer.tobinaryString (B)); System.out.println ("ข้อมูลไบนารีของ A คือ:" + Integer.tobinaryString (C)); System.out.println ("ค่า A หลังจากขยับไปทางซ้ายคือ:" + b); System.out.println ("ค่า A หลังจากการเปลี่ยนขวาคือ:" + c); -ตรวจสอบผลการทำงานดังแสดงในรูป:
ครั้งแรกข้อมูลไบนารีของ 16 คือ: 10,000;
ย้ายสองบิตที่เหลือและ 10,000 กลายเป็น 10,00000;
ย้ายสองหลักที่ถูกต้องและ 10,000 กลายเป็น 100;
หลังจากแปลงข้อมูลไบนารีที่ได้รับเป็นข้อมูลทั่วไปแล้ว
ค่าหลังจากกะซ้ายคือ 64 ซึ่งคือ 16 * 2 ถึงกำลัง 2 (16 * 4)
ค่าหลังจากการเลื่อนขวาคือ 4 ซึ่งคือ 16/2 ถึงกำลังของ 2 (16/4)
ง่ายกว่าที่จะเข้าใจผู้ให้บริการ Shift หลังจากอ่านตัวอย่างนี้หรือไม่?
การสาธิตด้านบนและบทสรุปของผู้ให้บริการ Shift (แนะนำ) ใน Java เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น