แม้ว่าจะมีบรรพบุรุษที่เก่าแก่นักคณิตศาสตร์ชาวฝรั่งเศสผู้มีอิทธิพล Rene Descartes มักให้เครดิตในการแนะนำเลขยกกำลังสูง ( a ) ในการเขียนทางคณิตศาสตร์ในงานGeometrieซึ่งตีพิมพ์ในปี 1637 นี่เป็นสัญกรณ์ที่ใช้กันอย่างแพร่หลายในคณิตศาสตร์ในปัจจุบัน
Fortran เป็นภาษาโปรแกรมที่เก่าแก่ที่สุดที่ใช้กันอย่างแพร่หลายสำหรับการคำนวณตัวเลขที่ให้ผู้ประกอบการยกกำลังก็เพื่อ 1954 **
การดำเนินการยกกำลังจะเขียนแทนด้วยเครื่องหมายดอกจันคู่ ควรสังเกตว่าคอมพิวเตอร์หลายเครื่องในเวลานั้นใช้การเข้ารหัสอักขระ 6 บิตที่ไม่มีอักขระคาเร็^
ต ต่อมาการใช้งาน**
ถูกนำไปใช้โดยผู้สร้างของภาษาการเขียนโปรแกรมล่าสุดที่หลากหลายซึ่งมีการดำเนินการยกกำลังเช่น Python
ชุดอักขระที่นำมาใช้อย่างกว้างขวางครั้งแรกที่มีเครื่องหมายรูปหมวก^
คือการเข้ารหัสASCII 7 บิตซึ่งเป็นมาตรฐานแรกในปี 1963 ภาษาการเขียนโปรแกรมที่เก่าแก่ที่สุดที่ฉันรู้ว่าใช้คาเร็ตเพื่อแสดงการยกกำลังคือ BASIC ซึ่งถึงปี 1964 เวลาที่ IBM ใช้การเข้ารหัสอักขระEBCDICซึ่งรวมถึงคาเร็ต^
ด้วย
ภาษา C มีอยู่จริงในปี 1972 มันไม่ได้ให้โอเปอเรเตอร์ exponentiation แต่มันรองรับการยกกำลังด้วยฟังก์ชั่นpow()
ไลบรารี่เช่น ดังนั้นไม่จำเป็นต้องมีสัญลักษณ์สำหรับการยกกำลังใน C และภาษาอื่น ๆ ในภายหลังในตระกูล C เช่น C ++ และ CUDA
ในทางกลับกันและแปลกสำหรับภาษาการเขียนโปรแกรมจนถึงเวลานั้น C ให้สัญลักษณ์สำหรับการดำเนินการระดับบิต จำนวนอักขระพิเศษที่มีอยู่ใน 7-bit ASCII นั้นมี จำกัด และเนื่องจากมี "ความสัมพันธ์ตามธรรมชาติ" ของการดำเนินการอื่น ๆ สำหรับอักขระพิเศษบางอย่างเช่น&
สำหรับ AND และ~
สำหรับ NOT จึงไม่มีตัวเลือกมากมายสำหรับสัญลักษณ์สำหรับ XOR .
ฉันไม่ทราบถึงเหตุผลที่ตีพิมพ์โดย Ritchie หรือ Kernighan ว่าทำไมพวกเขา^
ถึงเลือกXOR โดยเฉพาะ ประวัติย่อของ C ใน Ritchie นั้นเงียบในเรื่องนี้ ดูที่ข้อกำหนดสำหรับผู้นำกับเซลเซียสภาษา Bเผยให้เห็นว่ามันไม่ได้มีผู้ประกอบการแฮคเกอร์ แต่ใช้แล้วอักขระพิเศษอื่น ๆ ทั้งหมดกว่า^
, $
, ,@
#
[อัพเดท]ฉันส่งอีเมลถึง Ken Thompson ผู้สร้าง B และหนึ่งในผู้ร่วมสร้าง C สอบถามเกี่ยวกับเหตุผลในการเลือก^
เป็นผู้ดำเนินการ XOR ของ C และขออนุญาตแบ่งปันคำตอบที่นี่ คำตอบของเขา (จัดรูปแบบใหม่เพื่อให้อ่านง่าย):
จาก: Ken Thompson
ส่ง: วันพฤหัสบดี, 29 กันยายน, 2016 4:50 AM
ถึง: Norbert Juffa
เรื่อง: Re: เหตุผลเบื้องหลังการเลือก caret เป็นผู้ดำเนินการ XOR ใน C?
มันเป็นตัวเลือกสุ่มของตัวละครที่เหลือ
ถ้าฉันต้องทำมันอีกครั้ง (ซึ่งฉันทำ) ฉันจะใช้ตัวดำเนินการเดียวกันสำหรับ xor (^) และ bit complement (~)
เนื่องจาก ^ ปัจจุบันเป็นโอเปอเรเตอร์ที่รู้จักกันดีในระหว่างการเดินทาง ^ คือ xor และเติมเต็มด้วย
การใช้^
การยกกำลังใน "คณิตศาสตร์" ที่คุณอ้างถึงคือการใช้งานจริงที่จัดตั้งขึ้นในภายหลังสำหรับระบบเรียงพิมพ์เช่น Knuth's TeX ซึ่งมีอายุถึงปี 1978 อินเตอร์เฟสบรรทัดคำสั่งสำหรับระบบพีชคณิตเช่น Mathematica ซึ่งมีอายุถึงปี 1988 และการสร้างกราฟ เครื่องคิดเลขในต้นปี 1990
เหตุใดผลิตภัณฑ์เหล่านี้จึงนำมาใช้^
เพื่อการยกกำลัง ในกรณีของเครื่องคิดเลขฉันสงสัยว่าอิทธิพลของ BASIC ตลอดยุค 80 มันเป็นภาษาโปรแกรมแรกที่ได้รับความนิยมมากและถูกฝังอยู่ในผลิตภัณฑ์ซอฟต์แวร์อื่น ๆ สัญกรณ์จึงจะคุ้นเคยกับผู้ซื้อจำนวนมากของเครื่องคิดเลข หน่วยความจำของฉันไม่ชัด แต่ฉันเชื่อว่ามีแม้แต่เครื่องคิดเลขที่ใช้ล่ามพื้นฐานอย่างง่าย