ตัวดำเนินการ C # Bitwise Shift ซ้าย (<<)

Taw Danein Kar C Bitwise Shift Say



ในการเขียนโปรแกรม C# เราสามารถใช้ตัวดำเนินการ Bitwise เพื่อดำเนินการระดับบิตได้ การคำนวณระดับบิตจะทำใน CPU เมื่อเราดำเนินการทางคณิตศาสตร์ เช่น การบวก การลบ การคูณ หรือการหาร นอกจากนี้เรายังสามารถดำเนินการ Bitwise ในการเขียนโปรแกรม C# และกระบวนการนี้ง่ายมาก ตัวดำเนินการ Bitwise ดำเนินการกับค่าที่กำหนด มีการระบุจำนวนบิตที่จะเลื่อนด้วย มีตัวดำเนินการ Bitwise หกตัวในภาษา C# สองตัวเป็นตัวดำเนินการกะ

หัวข้อการสนทนาของเราเกี่ยวกับตัวดำเนินการกะ ตัวดำเนินการเลื่อนซ้าย Bitwise (<<) จะอธิบายโดยละเอียด ตัวดำเนินการเลื่อนตามชื่อที่แนะนำ เลื่อนบิตจากตำแหน่งที่ระบุไปทางซ้ายหรือขวา ค่าจะถูกย้ายไปทางซ้ายตามจำนวนบิตที่ระบุในขณะที่ใช้ตัวดำเนินการเลื่อนไปทางซ้ายตามบิต (<<) ตัวดำเนินการเลื่อนซ้ายรับอินพุตเฉพาะใน int (จำนวนเต็ม), uint (จำนวนเต็มไม่มีเครื่องหมาย), long (จำนวนเต็มยาว) และ ulong (จำนวนเต็มยาวที่ไม่ได้ลงนาม) เมื่อตัวถูกดำเนินการด้านซ้ายอยู่ในประเภทอื่น มันจะถูกแปลงเป็นประเภทจำนวนเต็ม ชนิดข้อมูลของค่าผลลัพธ์จะจำกัดไว้ที่ 32 บิต เอาต์พุตไม่สามารถมีขนาดใหญ่กว่านั้น ตัวดำเนินการระดับบิตทำให้โค้ดมีประสิทธิภาพและเร็วขึ้น นอกจากนี้ยังมีความแม่นยำและแม่นยำยิ่งขึ้น

ไวยากรณ์:

ตัวดำเนินการ_1 << ตัวดำเนินการ_2







“Operand_1” ตัวแรกคือค่าที่เลื่อนจากด้านซ้ายไปยังจำนวนกะที่มี “Operand_2” สัญลักษณ์ << ซ้ายเลื่อน 'Operand_1'



ตัวอย่างที่ 1:

ตัวดำเนินการเลื่อนซ้ายตามบิต (<<) ใช้กับค่าจำนวนเต็มในโปรแกรมนี้



ใช้ระบบ;

คลาส Program_1
{
โมฆะคงที่หลัก ( ) {
int Value_0 = 3. 4 ;
int Value_1 = 65 ;
นานาชาติ ความละเอียด = ค่า_0 << ค่า_1;
Console.Write ( 'กะซ้ายคือ  ' ) ;
Console.Write ( ความละเอียด ) ;
}
}

คำสั่งแรกประกอบด้วยการประกาศและการเริ่มต้นของตัวแปรประเภทจำนวนเต็มสองตัว ตัวแปรตัวแรกคือ “Value_0” และตัวแปรที่สองคือ “Value_1” ค่าที่เก็บไว้ในนั้นคือ '34' และ '65' เราออกจากค่า 34 โดยใช้ตัวดำเนินการเลื่อนซ้าย (<<) จากนั้นเราประกาศตัวแปรอื่นที่มีชนิดข้อมูลจำนวนเต็มเพื่อบันทึกผลลัพธ์ ที่นี่ เราใช้ตัวดำเนินการเลื่อนซ้าย (<<) เป็น Value_0 << Value_1 ตัวดำเนินการด้านซ้ายนี้เลื่อนค่าด้านซ้ายของตัวถูกดำเนินการไปทางซ้ายตามค่าที่กำหนดในตัวดำเนินการตัวที่สอง “res” เก็บเอาต์พุตของตัวดำเนินการกะ หลังจากนี้ เราเรียกเมธอด Console.Write() เพื่อพิมพ์ข้อความ “The left shift is” และค่าผลลัพธ์ที่เก็บอยู่ใน “res” บนเทอร์มินัล





ตัวอย่างที่ 2:

ลองใช้ตัวดำเนินการเลื่อนซ้ายกับค่าจำนวนเต็มที่ไม่ได้ลงนามและดูว่าพวกมันสร้างผลลัพธ์อย่างไร



ใช้ระบบ;

คลาส Program_2
{
โมฆะคงที่หลัก ( ) {
uint Val_0 = 4435 ;
int  Val_1 = 64 ;
ไม่ ผลลัพธ์ = Val_0 << Val_1;
Console.Write ( 'กะซ้ายคือ' ) ;
Console.Write ( ผลลัพธ์ ) ;
}
}

ที่นี่ เราใช้ตัวดำเนินการเลื่อนซ้ายกับค่าประเภทจำนวนเต็มที่ไม่ได้ลงนาม สิ่งหนึ่งที่คุณต้องดูแลคือตัวถูกดำเนินการตัวที่สองต้องเป็นค่าประเภทจำนวนเต็ม เนื่องจากคอมไพเลอร์ใช้เฉพาะค่าจำนวนเต็มในการเลื่อน

หลังจากเรียกใช้ฟังก์ชัน static void Main() แล้ว เราจะประกาศตัวแปรสองตัว ตัวหนึ่งเป็นค่าจำนวนเต็มที่ไม่ได้ลงนาม “Val_0” และอีกตัวเป็นค่าจำนวนเต็ม “Val_1” จากนั้น เรากำหนดตัวแปรจำนวนเต็มที่ไม่ได้ลงนามอีกตัวแปรหนึ่ง ซึ่งก็คือ “ผลลัพธ์” เพื่อเก็บค่าผลลัพธ์หลังจากเลื่อนไปทางซ้ายของจำนวนเต็มที่ไม่ได้ลงนาม เราไม่สามารถจัดเก็บผลลัพธ์เป็นตัวแปรประเภทจำนวนเต็มได้ เนื่องจากหลังจากการเลื่อนไปทางซ้าย ผลลัพธ์จะเป็นค่าที่ไม่ได้ลงนาม คำสั่ง 'Val_0 << Val_1' ทางซ้ายจะเลื่อนตัวถูกดำเนินการทางซ้ายที่เป็นค่าจำนวนเต็มที่ไม่ได้ลงนาม มันสร้างค่าจำนวนเต็มที่ไม่ได้ลงนาม ในตอนท้าย แสดงผลบนหน้าจอเอาต์พุตพร้อมข้อความ “The left shift is” โดยใช้วิธี Console.Write() :

ตัวอย่างที่ 3:

ในกรณีนี้ เราจะพูดถึงวิธีการต่างๆ ของการใช้ตัวดำเนินการเลื่อนซ้าย Bitwise (<<) กับค่าจำนวนเต็มยาว

ใช้ระบบ;

คลาส Program_3
{
โมฆะคงที่หลัก ( ) {
ตัวเลขยาว_0 = สี่ห้า ;
ยาว number_1 = 5 ;

Console.Write ( 'การเลื่อนไปทางซ้ายของ long คือ ' ) ;
Console.WriteLine ( หมายเลข_0 << 3 ) ;
Console.Write ( 'การเลื่อนไปทางซ้ายของ long คือ ' ) ;
Console.Write ( หมายเลข_0 << Convert.ToInt16 ( หมายเลข_1 ) ) ;
}
}

การกำหนดค่าเริ่มต้นของตัวแปรประเภทจำนวนเต็มยาวสองตัวคือ “number_0” และ “number_1” เสร็จสิ้นในคำสั่งแรก เรียกใช้ฟังก์ชัน Console.Write() เพื่อแสดงข้อความ “The left shift of long is” และผลลัพธ์บนเทอร์มินัล ในที่นี้ เราใช้ตัวดำเนินการเลื่อนซ้าย (<<) ในลักษณะที่เราวางตัวถูกดำเนินการตัวแรกเป็นตัวแปรตัวแรก และตัวถูกดำเนินการตัวที่สองเป็นค่าจำนวนเต็ม คอมไพเลอร์ไปทางซ้ายเลื่อนตัวถูกดำเนินการตัวแรกซึ่งเป็น 'number_0' ทีละ 3 และแสดงผลลัพธ์ ในคำสั่งถัดไป ให้พิมพ์ข้อความอื่นบนหน้าจอโดยใช้เมธอด Console.Write() ที่นี่ เราใช้ตัวแปรตัวแรก “number_0” เป็นตัวถูกดำเนินการตัวแรก และตัวแปรตัวที่สอง “number_1” เป็นตัวถูกดำเนินการตัวที่สอง ตัวถูกดำเนินการที่สองต้องเป็นค่าประเภทจำนวนเต็ม เราพิมพ์ตัวแปรที่สอง “number_1” เป็นประเภทจำนวนเต็มโดยใช้ฟังก์ชัน Convert.ToInt16() จากนั้น แสดงผลบนคอนโซล:

ตัวอย่างที่ 4:

รหัสนี้แสดงวิธีที่เราสามารถกำหนดค่าให้กับจำนวนเต็มหลังจากทำการเลื่อนซ้ายบนตัวดำเนินการแบบยาวที่ไม่ได้ลงนาม

ใช้ระบบ;

คลาส Program_4
{
โมฆะคงที่หลัก ( ) {
หัว number_0 = 445 ;

Console.Write ( 'การเลื่อนซ้ายของอูหลงคือ' ) ;
Console.WriteLine ( หมายเลข_0 << 8 ) ;
Console.Write ( 'การเลื่อนซ้ายของอูหลงคือ' ) ;
Console.WriteLine ( หมายเลข_0 << 16 ) ;
Console.Write ( 'การเลื่อนซ้ายของอูหลงคือ' ) ;
Console.WriteLine ( หมายเลข_0 << 32 ) ;

}
}

ขั้นแรก ประกาศตัวแปรประเภทจำนวนเต็มยาวที่ไม่ได้ลงนามซึ่งก็คือ “number_0” จากนั้น แสดงข้อความ “The left shift of ulong is” บนเทอร์มินัลโดยเรียกเมธอด Console.Write() เราจะพบการเลื่อนไปทางซ้ายของ “number_0” ด้วยค่าจำนวนเต็ม 8 และเราไม่จำเป็นต้องเก็บผลลัพธ์ไว้ที่ใด ฟังก์ชัน Console.WriteLine() พิมพ์ผลลัพธ์บนคอนโซล ทำขั้นตอนนี้ซ้ำสองครั้งและเปลี่ยนค่าของตัวถูกดำเนินการที่สอง เมื่อทำสิ่งนี้ เราสามารถหาการเลื่อนไปทางซ้ายของค่าชนิดจำนวนเต็มยาวที่ไม่มีเครื่องหมาย แต่ถ้าเราต้องการบันทึกค่าผลลัพธ์ในตัวแปร เราควรคิดว่าผลลัพธ์เป็นประเภทเดียวกับตัวถูกดำเนินการตัวแรก ข้อแตกต่างระหว่าง Console.Write() และ Console.WriteLine() คือ ฟังก์ชันที่สองพิมพ์ผลลัพธ์และส่งเคอร์เซอร์ไปยังบรรทัดถัดไป ในขณะที่ฟังก์ชันแรกพิมพ์เฉพาะผลลัพธ์และเคอร์เซอร์จะกะพริบในบรรทัดเดียวกันแม้หลังจากนั้น แสดงผล

บทสรุป

เราได้สำรวจตัวดำเนินการ Bitwise ใน C# ประเภทและฟังก์ชันการทำงาน ตัวดำเนินการเลื่อนซ้าย (<<) ใช้เพื่อเลื่อนตัวเลขหรือค่าตามจำนวนบิตที่แน่นอนไปทางซ้าย ตัวดำเนินการ Bitwise ปรับปรุงประสิทธิภาพของรหัสและไม่เป็นภาระต่อระบบเนื่องจากเป็นตัวดำเนินการที่มีน้ำหนักเบา CPU (หน่วยประมวลผลคอมพิวเตอร์) ของเราทำงานในระดับ Bitwise เมื่อใดก็ตามที่เราดำเนินการทางคณิตศาสตร์ใดๆ โดยสรุป ตัวดำเนินการ Bitwise มีความสำคัญในการเขียนโปรแกรม และ C# รองรับตัวดำเนินการ Bitwise ทั้งหมด ซึ่งตัวดำเนินการเลื่อนซ้าย (<<) เป็นหนึ่งในนั้น