..


ลิงก์ผู้สนับสนุน

โปรโมชั่นจาวาที่เป็นตัวเลข

บทความที่เขียนโดย Damiano Verda
หน้า 1 จาก 2

โปรโมชั่นที่เป็นตัวเลขคืออะไร? นี่คือการทำงานร่วมกันมากในโปรแกรมและสอดคล้องกับการแปลงนัยของ operands (ตัวอย่างเช่น addend) ที่เกี่ยวข้องกับการดำเนินการที่เป็นตัวเลข (เช่น"+"แสดงว่านอกจากนี้)

การแปลงนี้เป็นสิ่งจำเป็นเมื่อใดก็ตามที่ตัวถูกดำเนินการไม่ตรงกับชนิดของข้อมูลที่คาดว่าสำหรับการดำเนินงาน ในบางกรณีการแปลงจะต้องชัดเจน (ตัวอย่างเช่นการใช้ สกิล ) และดังนั้นจึงเป็นความรับผิดชอบของโปรแกรมเมอร์

ในกรณีอื่น ๆ โดยเฉพาะอย่างยิ่งในกรณีของการเขียนโปรแกรมภาษาอื่น ๆ ที่ทันสมัยและการกระจาย (ต่อจากนี้เราจะอ้างถึงโดยเฉพาะอย่างยิ่งในภาษา Java), การแปลงจะกระทำโดยอัตโนมัติจึงปริยาย ในกรณีนี้ก็เป็นไปได้ที่จะพูดถึงโปรโมชั่นที่เป็นตัวเลข

เราสามารถแยกแยะความแตกต่างสองประเภทหลักของการส่งเสริมการขายตัวเลข : ตัวเลขการส่งเสริมการขายและการส่งเสริมการ unary ตัวเลขไบนารีซึ่งแตกต่างกันอย่างมีนัยสำคัญในลักษณะของการคำนวณที่เกี่ยวข้องในการดำเนินการที่ (unary หรือ binary) ลองดูที่เส้นทั้งการดูแลเพื่อยังให้สั้นตัวอย่างบางส่วนของรหัส Java

โปรโมชั่น unary ตัวเลข

ลองมาดูตัวอย่าง :






 ไบต์ 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 พิมพ์อักขระ) ด้วยเหตุนี้คอมไพเลอร์สามารถดำเนินการแปลงด้วยตัวคุณเอง

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

ในประเภทเดียวกัน ...
E - Learning
ลินุกซ์ (หลักสูตร) ลินุกซ์ (หลักสูตร)
คู่มือที่สมบูรณ์ในระบบเปิดแหล่งที่มา จาก 49 €
PHP (หลักสูตร) PHP (หลักสูตร)
หลักสูตรเต็มสำหรับการสร้างเว็บไซต์แบบไดนามิก จาก 49 €
Ruby และ Ruby on Rails (หลักสูตร) Ruby และ Ruby on Rails (หลักสูตร)
สร้างโปรแกรมซอฟต์แวร์และเว็บด้วยทับทิมและ ร. จาก 39 €
ลิงก์ผู้สนับสนุน