วิธีแปลงเลขฐานสองเป็นทศนิยมในภาษาซี

Withi Paelng Lekh Than Sxng Pen Thsniym Ni Phas A Si



เลขฐานสองคือการรวมกันของ 0 และ 1 ในขณะที่เลขฐานสิบคือเลขฐาน 10 ในการเขียนโปรแกรมภาษาซี เราแปลงเลขฐานสองเป็นเลขฐานสิบเพื่อปรับปรุงประสิทธิภาพของโค้ดและทำให้ผู้เรียนเข้าใจได้ง่ายขึ้น

หลักเกณฑ์นี้จะกล่าวถึงวิธีการแปลงเลขฐานสองเป็นเลขฐานสิบในภาษาซี

ก่อนที่เราจะเข้าสู่แนวคิด เรามาดูกันว่าเลขฐานสองและทศนิยมในภาษาซีคืออะไร







รูปแบบเลขฐานสองและทศนิยมในภาษาซี

เลขฐานสองคือตัวเลขที่แสดงในรูปแบบของการผสมเลขสองหลัก 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 และการประมวลผลนั้นเร็วกว่าเมื่อเทียบกับเลขฐานสอง ดังนั้น เลขฐานสองจึงถูกแปลงเป็นทศนิยม ภาพรวมข้างต้นได้อธิบายการแปลงเลขฐานสองเป็นทศนิยมด้วยโปรแกรมภาษาซีพร้อมฟังก์ชันที่ผู้ใช้กำหนดเองและในตัว สตรอล() การทำงาน.