Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

การสลับตัวเลขโดยใช้ตัวดำเนินการระดับบิตใน C


ปัญหา

จะสลับตัวเลขโดยใช้ตัวดำเนินการระดับบิตในภาษาการเขียนโปรแกรม C ได้อย่างไร

วิธีแก้ปัญหา

คอมไพเลอร์สลับตัวเลขที่กำหนด ขั้นแรก จะแปลงเลขทศนิยมที่กำหนดเป็นเลขฐานสองที่เทียบเท่า จากนั้นจึงดำเนินการ XOR ระดับบิตเพื่อแลกเปลี่ยนตัวเลขจากตำแหน่งหน่วยความจำหนึ่งไปยังอีกตำแหน่งหนึ่ง

อัลกอริทึม

เริ่มขั้นตอนที่ 1:ประกาศตัวแปรสองตัว a และ b ขั้นตอนที่ 1:ป้อนตัวเลขสองตัวจากคอนโซลขั้นตอนที่ 2:สลับตัวเลขสองตัวโดยใช้ตัวดำเนินการ BITWISE a=a^b b=a^b a=a^bขั้นตอนที่ 3:พิมพ์ค่า a และ b หยุด 

โปรแกรม

#includeint main(){ int a,b; printf("ป้อนค่าสำหรับ a และ b:"); scanf("%d%d",&a,&b); printf("ค่าของ a=%d และ b=%d ก่อนสลับ\n",a,b); a=a^b; b=a^b; a=a^b; printf("ค่าของ a=%d และ b=%d หลังจากสลับ",a,b); คืนค่า 0;}

ผลลัพธ์

ป้อนค่าสำหรับ a และ b:24 56value ของ a=24 และ b=56 ก่อน swapvalue ของ a=56 และ b=24 หลังจาก swapExplanation:a=24 เทียบเท่าไบนารีของ 24 =011000b=56 เทียบเท่าไบนารีที่ 56=111000a=a^b =100000b=a^b=100000 ^ 111000 =011000a=a^b=100000 ^ 011000 =111000 ตอนนี้ a=111000 เทียบเท่าทศนิยม =56b=011000 เทียบเท่าทศนิยม =24