หลักเกณฑ์นี้จะกล่าวถึงวิธีการแปลงเลขฐานสองเป็นเลขฐานสิบในภาษาซี
ก่อนที่เราจะเข้าสู่แนวคิด เรามาดูกันว่าเลขฐานสองและทศนิยมในภาษาซีคืออะไร
รูปแบบเลขฐานสองและทศนิยมในภาษาซี
เลขฐานสองคือตัวเลขที่แสดงในรูปแบบของการผสมเลขสองหลัก 0 และ 1 และเรียกเลขฐานสองนี้ว่าระบบเลขฐาน 2 ในทางกลับกัน เลขฐานสิบคือเลขฐาน 10 ที่ประกอบด้วยตัวเลขตั้งแต่ 0 ถึง 9
ตามที่คุณเห็นในชื่อเลขฐานสองซึ่งหมายถึงสอง ดังนั้นเมื่อเรามีตัวเลขในรูปแบบของการผสมของเลขสองหลัก 0 และ 1 เราจะเรียกมันว่าเลขฐานสอง เรียกว่าระบบเลขฐาน 2
ทำไมต้องแปลงเลขฐานสองเป็นทศนิยมในภาษาซี
การทำงานกับเลขฐานสองเป็นสิ่งที่ท้าทายสำหรับนักพัฒนา เนื่องจากมี 0 และ 1 หลายชุดที่เป็นไปได้ ในทางกลับกัน ตัวเลขทศนิยมนั้นเข้าใจและประมวลผลได้ง่ายกว่า ทำให้เป็นวิธีการที่รวดเร็วและมีประสิทธิภาพมากขึ้นสำหรับโปรแกรมภาษาซี การแปลงเลขฐานสองเป็นเลขฐานสิบในภาษาซีเกี่ยวข้องกับการคูณเลขฐานสองทั้งหมดด้วยกำลังที่เหมาะสมของสองและเพิ่มผลลัพธ์ ซึ่งทำได้โดยใช้ลูป
อัลกอริทึมอย่างง่ายในการแปลงไบนารีเป็นทศนิยมใน C
นี่คืออัลกอริทึมง่ายๆ ในการแปลงเลขฐานสองเป็นทศนิยมในภาษา C โดยใช้หกขั้นตอนง่ายๆ:
- ใช้เลขฐานสองเป็นอินพุตจากผู้ใช้
- เริ่มต้นตัวแปร 'ทศนิยม' เป็น 0 และตัวแปร 'ฐาน' เป็น 1
- แยกหลักขวาสุดของเลขฐานสองโดยใช้ตัวดำเนินการโมดูลัส (%) และเพิ่มผลคูณของหลักนี้และฐานลงในตัวแปรทศนิยม
- คูณตัวแปรฐานด้วย 2
- ลบหลักขวาสุดออกจากเลขฐานสองโดยใช้การหารจำนวนเต็ม (/)
- ทำซ้ำขั้นตอนที่ 3-5 จนกว่าตัวเลขทั้งหมดจะได้รับการประมวลผล
- แสดงค่าทศนิยมของเลขฐานสองที่เก็บอยู่ในตัวแปร 'ทศนิยม'
แปลงเลขฐานสองเป็นทศนิยมในภาษาซี
ต่อไปนี้เป็นโค้ดง่ายๆ ในการแปลงเลขฐานสองเป็นทศนิยมในการเขียนโปรแกรมภาษาซี
#รวม
#รวม
นานาชาติ หลัก ( ) {
ยาว ยาว ก ;
พิมพ์ฉ ( 'กรุณาใส่เลขฐานสอง: ' ) ;
สแกน ( '%lld' , & ก ) ;
พิมพ์ฉ ( '%lld ในไบนารี = %d ในรูปของทศนิยม' , ก , binaryToDecimal ( ก ) ) ;
กลับ 0 ; }
นานาชาติ binaryToDecimal ( ยาว ยาว ก ) {
นานาชาติ ธันวาคม = 0 , ข = 0 , ร ;
ในขณะที่ ( ก != 0 ) {
ร = ก % 10 ;
ก /= 10 ;
ธันวาคม += ร * ธาร ( 2 , ข ) ;
++ ข ;
}
กลับ ธันวาคม ;
}
ในโค้ดด้านบน ฟังก์ชันส่วนกลางถูกสร้างขึ้นเป็นชื่อ “ฐานสองถึงทศนิยม” . จากนั้นใน main เราประกาศตัวแปร long เป็น “ก” และขอให้ผู้ใช้เพิ่มเลขฐานสองและแปลงเป็นทศนิยมโดยเรียก “ฐานสองถึงทศนิยม” ฟังก์ชันที่มีพารามิเตอร์ของ a” ใน “ฐานสองถึงทศนิยม” นิยามฟังก์ชันการแปลงทศนิยมผ่านลูป while
เอาต์พุต
คุณยังสามารถใช้ในตัว สตรอล() ฟังก์ชันแปลงเลขฐานสองเป็นทศนิยมในโปรแกรมภาษาซี
ต่อไปนี้คือโค้ดสำหรับฟังก์ชันดังกล่าว:
#รวม#รวม
นานาชาติ หลัก ( ) {
ถ่าน binary_string [ ] = '1110' ;
ถ่าน * พีทีอาร์ ;
ยาว ทศนิยม_value ;
ทศนิยม_value = ล้มเหลว ( binary_string , & พีทีอาร์ , 2 ) ;
พิมพ์ฉ ( 'สตริงไบนารี' % ส ' เท่ากับค่าทศนิยม %ld \n ' , binary_string , ทศนิยม_value ) ;
กลับ 0 ;
}
รหัสด้านบนแปลงสตริงไบนารี “1110” เป็นค่าทศนิยมเทียบเท่าโดยใช้ สตรอล() ฟังก์ชันซึ่งใช้สตริงไบนารี ตัวชี้ไปยังตัวชี้ถ่าน และฐานของระบบตัวเลขเป็นอาร์กิวเมนต์ สุดท้ายจะพิมพ์ผลลัพธ์ไปยังคอนโซลโดยใช้ พิมพ์f()
เอาต์พุต
บทสรุป
อย่างที่เราทราบกันดีว่ามนุษย์คุ้นเคยกับเลขฐานสิบเมื่อเทียบกับเลขฐานสองเนื่องจากยากต่อการจัดการ เลขฐานสิบนั้นง่ายต่อการดำเนินการทางคณิตศาสตร์เนื่องจากอยู่ในฐาน 10 และการประมวลผลนั้นเร็วกว่าเมื่อเทียบกับเลขฐานสอง ดังนั้น เลขฐานสองจึงถูกแปลงเป็นทศนิยม ภาพรวมข้างต้นได้อธิบายการแปลงเลขฐานสองเป็นทศนิยมด้วยโปรแกรมภาษาซีพร้อมฟังก์ชันที่ผู้ใช้กำหนดเองและในตัว สตรอล() การทำงาน.