..
โปรโมชั่นที่เป็นตัวเลขคืออะไร? นี่คือการทำงานร่วมกันมากในโปรแกรมและสอดคล้องกับการแปลงนัยของ operands (ตัวอย่างเช่น addend) ที่เกี่ยวข้องกับการดำเนินการที่เป็นตัวเลข (เช่น"+"แสดงว่านอกจากนี้)
การแปลงนี้เป็นสิ่งจำเป็นเมื่อใดก็ตามที่ตัวถูกดำเนินการไม่ตรงกับชนิดของข้อมูลที่คาดว่าสำหรับการดำเนินงาน ในบางกรณีการแปลงจะต้องชัดเจน (ตัวอย่างเช่นการใช้ สกิล ) และดังนั้นจึงเป็นความรับผิดชอบของโปรแกรมเมอร์
ในกรณีอื่น ๆ โดยเฉพาะอย่างยิ่งในกรณีของการเขียนโปรแกรมภาษาอื่น ๆ ที่ทันสมัยและการกระจาย (ต่อจากนี้เราจะอ้างถึงโดยเฉพาะอย่างยิ่งในภาษา Java), การแปลงจะกระทำโดยอัตโนมัติจึงปริยาย ในกรณีนี้ก็เป็นไปได้ที่จะพูดถึงโปรโมชั่นที่เป็นตัวเลข
เราสามารถแยกแยะความแตกต่างสองประเภทหลักของการส่งเสริมการขายตัวเลข : ตัวเลขการส่งเสริมการขายและการส่งเสริมการ unary ตัวเลขไบนารีซึ่งแตกต่างกันอย่างมีนัยสำคัญในลักษณะของการคำนวณที่เกี่ยวข้องในการดำเนินการที่ (unary หรือ binary) ลองดูที่เส้นทั้งการดูแลเพื่อยังให้สั้นตัวอย่างบางส่วนของรหัส Java
ลองมาดูตัวอย่าง :
ไบต์ B = 2;
int a [] = int ใหม่ [b];
ตัวอักษร c ='\ u0001';
เพื่อให้ [C] = 1;
[0] = c;
ในกรณีนี้แม้ว่าจะง่ายมากเราสามารถระบุสามตัวอย่างของการส่งเสริมการขายตัวเลข unary แรกคือการศึกษา int a [] = int ใหม่ [b] ขนาดของอาร์เรย์ที่ความเป็นจริง'ควรจะแสดงโดยจำนวนเต็ม (ตัวแปร int) ในขณะที่ b เป็นตัวแปรของ byte ประเภท
หลังจากนั้นให้เราสะท้อนให้เห็นเกี่ยวกับการศึกษา [C] =- 1 ในกรณีนี้มันก็จะผ่านเป็นดัชนีของอาร์เรย์'อีกครั้งหนึ่งไม่พารามิเตอร์ของจำนวนเต็มชนิดหนึ่งที่มี แต่ตัวอักษรชนิด (ในกรณีนี้) ในทำนองเดียวกันคำสั่งต่อไป [0] อักขระ =- 0 C จะช่วยให้ตำแหน่งของอาร์เรย์'เพื่อให้มีค่าของชนิด int และไม่ได้
เราสังเกตเห็นก่อนว่ามันมีความเกี่ยวข้องกับการแปลงเพื่อดำเนินการมอบหมาย'("="), จึงเป็นผู้ประกอบการ unary, ที่เกี่ยวข้องกับตัวถูกดำเนินการเพียงคนเดียว นี่คือเหตุผลที่เราสามารถพูดได้จากโปรโมชั่นที่เป็นตัวเลข unary วิธีคอมไพเลอร์ที่จับแปลงที่เกี่ยวข้องกับขั้นตอนโดยปริยายหรือไม่
ในกรณีทั้งสามแปลงที่สามารถย่อยสลายเป็นสองขั้นตอนประถม แรกเป็น unboxing ประเภทการแปลงคือข้อมูล (ในกรณีของไบต์หรืออักขระประเภทนี้) จะถูกแปลงเป็นที่สอดคล้องกับชนิดของข้อมูลดั้งเดิม (ไบต์ char, ตามลำดับ)
ณ จุดที่เราจะดำเนินไปเป็นระยะที่สองของการแปลงในทุกกรณีทั้งสามนี้ภายใต้การพิจารณาการแปลงดั้งเดิมขยับขยายเป็น ในระยะสั้นมีการสูญหายของข้อมูลไม่เป็นและแน่นอนชนิดข้อมูลใหม่ที่คุณเลือก (int) เป็นมากเกินไปเมื่อเทียบกับการจัดเก็บข้อมูล (ที่มีอยู่ในตัวแปร B หรือ C ชนิดของ byte พิมพ์อักขระ) ด้วยเหตุนี้คอมไพเลอร์สามารถดำเนินการแปลงด้วยตัวคุณเอง
เราเน้นว่ามันเป็นเพียงการแปลงจริงที่สามารถดำเนินการโดยปริยายในบริบทของการส่งเสริมการขายเป็นตัวเลขที่มีการกล่าวถึง มีในความเป็นจริงยังเป็นไปได้ของความเป็นเอกลักษณ์ในการแปลงชนิด แต่เก็บชนิดข้อมูลของตัวแปรในคำถามและดังนั้นจึงเป็นเรื่องที่น่าสนใจในเชิงทฤษฎีส่วนใหญ่
| |
ลินุกซ์ (หลักสูตร)
คู่มือที่สมบูรณ์ในระบบเปิดแหล่งที่มา จาก 49 € |
| |
PHP (หลักสูตร)
หลักสูตรเต็มสำหรับการสร้างเว็บไซต์แบบไดนามิก จาก 49 € |
| |
Ruby และ Ruby on Rails (หลักสูตร)
สร้างโปรแกรมซอฟต์แวร์และเว็บด้วยทับทิมและ ร. จาก 39 € |