วิธีการแปลงทศนิยมเป็นไบนารีในภาษาซี

Withi Kar Paelng Thsniym Pen Binari Ni Phas A Si



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

วิธีการแปลงทศนิยมเป็นไบนารีใน C?

ค่าทศนิยมที่กำหนดจะถูกหารด้วย 2 หลาย ๆ ครั้ง โดยส่วนที่เหลือจะถูกบันทึกจนกว่าเราจะได้ 0 เป็นผลหารสุดท้าย กระบวนการนี้ใช้ในการแปลงจำนวนเต็มจากทศนิยมเป็นไบนารี สูตรที่สาธิตกระบวนการแปลงจากเลขฐานสิบเป็นเลขฐานสองถือเป็นขั้นตอนดังต่อไปนี้:







ขั้นตอนที่ 1: หาเศษที่เหลือโดยการหารจำนวนด้วย 2 แล้วบวกเข้าไปในอาร์เรย์



ขั้นตอนที่ 2: ถัดไป หารส่วนที่เหลือด้วยสอง



ขั้นตอนที่ 3: ทำสองขั้นตอนแรกอีกครั้งจนกว่าผลลัพธ์จะเกิน 0





ขั้นตอนที่ 4: แสดงอาร์เรย์ย้อนหลังเพื่อรับรูปแบบไบนารีของตัวเลข Least-Significant-Bit (LSB) ของเลขฐานสองจะอยู่ด้านบน ในขณะที่ Most-Significant-Bit (MSB) จะอยู่ด้านล่าง ซึ่งเป็นอีกวิธีในการตีความสิ่งนี้ เลขฐานสองที่เทียบเท่ากับเลขทศนิยมที่ให้ไว้คือเลขนี้

เพื่อให้เข้าใจได้ดีขึ้น นี่คือการแปลง 11 10 ในการแปลงทศนิยมเป็นไบนารี:



หารด้วย 2 เชาวน์ ส่วนที่เหลือ
11÷2 5 1 (แอลเอสบี)
5 ÷ 2 2 1
2-2 1 0
1-2 0 1 (MSB)


ตอนนี้เขียนส่วนที่เหลือในลำดับที่กลับกัน ดังนั้น ทศนิยม (11 10 ) กลายเป็น (1011 2 ).

ส่วนที่เหลือจะถูกบันทึกและเขียนเพื่อให้ (MSB) ของเลขฐานสองมาก่อน แล้วจึงที่เหลือ ดังนั้น 1011 2 เป็นเลขฐานสองที่เทียบเท่ากับค่าทศนิยมที่กำหนด 11 10 . ส่งผลให้ 11 10 = 1011 2 . ต่อไปนี้เป็นการนำทศนิยมดังกล่าวข้างต้นไปใช้ในการแปลงเลขฐานสองในภาษาซี

วิธีที่ใช้ในการแปลงทศนิยมเป็นไบนารี

วิธีการเหล่านี้ที่ใช้ในภาษา C แปลงเลขฐานสิบเป็นเลขฐานสอง:

ตอนนี้ใช้การแปลงทศนิยมเป็นเลขฐานสองด้วยวิธีที่กล่าวถึงข้างต้น

วิธีที่ 1: ทศนิยมเป็นไบนารีในการเขียนโปรแกรม C ด้วย for Loop

ด้านล่างนี้คือการแปลงเลขฐานสิบ (11) เป็นเลขฐานสองโดยใช้ for-loop ใน C:

#รวม
เป็นโมฆะแปลง ( int หมายเลข 1 ) {
ถ้า ( หมายเลข 1 == 0 ) {
พิมพ์ฉ ( '0' ) ;
กลับ ;
}
int binary_num [ 32 ] ; // ทะลึ่ง 32 จำนวนเต็มบิต
นานาชาติ ฉัน = 0 ;
สำหรับ ( ;num1 > 0 ; ) {
binary_num [ ฉัน ++ ] = จำนวน 1 % 2 ;
หมายเลข 1 / = 2 ;
}
สำหรับ ( int j = ฉัน- 1 ; เจ > = 0 ; เจ-- )
พิมพ์ฉ ( '%d' , binary_num [ เจ ] ) ;
}
int หลัก ( ) {
int หมายเลข 1;
พิมพ์ฉ ( 'ป้อนเลขฐานสิบ: ' ) ;
สแกน ( '%d' , & หมายเลข 1 ) ;
แปลง ( หมายเลข 1 ) ;
กลับ 0 ;
}


โปรแกรมด้านบนกำลังใช้ for วนซ้ำเพื่อแปลงเลขฐานสิบที่ผู้ใช้ให้มาให้เป็นเลขฐานสอง ผลลัพธ์คือ:

วิธีที่ 2: ทศนิยมเป็นไบนารีในการเขียนโปรแกรม C ด้วย while Loop

ในวิธีนี้ ลูป while ในภาษาซีใช้เพื่อแปลงเลขฐานสิบ (11) เป็นเลขฐานสอง ดังที่แสดงด้านล่าง:

#รวม
int หลัก ( ) {
int decimal_num, binary_num = 0 , ฐาน = 1 , ส่วนที่เหลือ;
พิมพ์ฉ ( 'ป้อนเลขฐานสิบ: ' ) ;
สแกน ( '%d' , & ทศนิยม_num ) ;
ในขณะที่ ( ทศนิยม_num > 0 ) {
เศษที่เหลือ = decimal_num % 2 ;
binary_num = binary_num + เศษ * ฐาน;
decimal_number = เลขฐานสิบ / 2 ;
ฐาน = ฐาน * 10 ;
}
พิมพ์ฉ ( 'เลขฐานสองของเลขฐานสิบที่ระบุในขณะที่วนซ้ำคือ: %d' , binary_num ) ;
กลับ 0 ;
}


ตัวแปรจำนวนเต็มสี่ตัวคือ decimal_num, binary_num, ฐาน และเศษจะถูกประกาศในโปรแกรมนี้ก่อน ผู้ใช้ป้อน decimal_num ซึ่งเราจะแปลงเป็น binary_num การแปลงไบนารีดำเนินการโดยใช้ลูป while

วิธีที่ 3: ทศนิยมเป็นไบนารีในการเขียนโปรแกรม C ด้วย Stack

นี่เป็นวิธีการที่ตรงไปตรงมากับโปรแกรม C แบบสแต็กที่เปลี่ยนค่าทศนิยมเป็นไบนารี:

#รวม

#define MAX_SIZE 32 // จำนวนบิตสูงสุดในการแทนไบนารี
int หลัก ( ) {
int decimal_num, ไบนารี [ MAX_SIZE ] , ด้านบน = -1 ;
พิมพ์ฉ ( 'กรุณาใส่เลขทศนิยม: ' ) ;
สแกน ( '%d' , & ทศนิยม_num ) ;
ในขณะที่ ( ทศนิยม_num > 0 ) {
ไบนารี่ [ ++ด้านบน ] = ทศนิยม_num % 2 ;
ทศนิยม_num / = 2 ;
}
พิมพ์ฉ ( 'ไบนารีของ %d ที่ใช้วิธี stack คือ:' ) ;
ในขณะที่ ( สูงสุด > = 0 ) {
พิมพ์ฉ ( '%d' , ไบนารี่ [ สูงสุด-- ] ) ;
}
กลับ 0 ;
}


ก่อนอื่นเราจะประกาศตัวแปรจำนวนเต็มสามตัวด้านบน เลขฐานสอง และทศนิยมในโปรแกรมนี้ ด้านบนคือดัชนีขององค์ประกอบสูงสุดในสแต็ก ทศนิยมคือตัวเลขในรูปแบบทศนิยมที่ผู้ใช้ป้อน ไบนารีคืออาร์เรย์ที่จะมีบิตในไบนารีเป็น MAX_SIZE บิต และทศนิยมคืออาร์เรย์ไบนารี หลังจากนั้น การแปลงไบนารีจะดำเนินการโดยใช้ลูป while

ผลลัพธ์คือ:

วิธีที่ 4: ทศนิยมเป็นไบนารีในการเขียนโปรแกรม C ด้วยตัวดำเนินการ Bitwise

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

#รวม

// วิธีนี้จะแสดงทั้งหมด 4 บิตของตัวเลข
การแปลงเป็นโมฆะ ( int หมายเลข 1 ) {
// พิจารณาก 4 หมายเลขบิต
สำหรับ ( int ฉัน = 3 ; ฉัน > = 0 ; ฉัน-- ) {
int บิต = ( 1 << ฉัน ) ;
ถ้า ( หมายเลข 1 & นิดหน่อย )
พิมพ์ฉ ( '1' ) ;
อื่น
พิมพ์ฉ ( '0' ) ;
}
}
int หลัก ( ) {
int หมายเลข 1;
พิมพ์ฉ ( 'ป้อนเลขฐานสิบ: ' ) ;
สแกน ( '%d' , & หมายเลข 1 ) ;
การแปลง ( หมายเลข 1 ) ;
กลับ 0 ;
}


โปรแกรมนี้จะดำเนินการ for ลูปผ่านหมายเลขที่เริ่มต้นที่บิตที่มีนัยสำคัญที่สุดและสิ้นสุดที่บิตที่มีนัยสำคัญน้อยที่สุด ด้วยการดำเนินการ 'ตามระดับบิตและ' บนหน้ากากและตัวเลข เราอาจระบุได้ว่าบิตนั้นเป็น 0 หรือ 1 ถ้าไม่ใช่ศูนย์ บิตปัจจุบันคือ 1; มิฉะนั้นจะเป็น 0

หากต้องการแสดงรูปแบบไบนารีของ num1 ให้ส่งออกบิตหลังจากการวนซ้ำแต่ละครั้ง ผลลัพธ์สุดท้ายหลังจากการดำเนินการเสร็จสิ้นจะเป็นดังนี้:

บทสรุป

เป็นทักษะที่จำเป็นในการเขียนโปรแกรมคอมพิวเตอร์เพื่อแปลงตัวเลขจากเลขฐานสิบเป็นเลขฐานสอง การแปลงเลขฐานสิบเป็นเลขฐานสองทำให้เราสามารถดำเนินการต่างๆ ในการเขียนโปรแกรมภาษาซีได้ บทความนี้มี 4 วิธีในการแปลงค่าทศนิยมเป็นค่าไบนารี