The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
ประเภทที่เก็บจำนวนเต็ม: char, short, int, long, long long
ลองมาดูตัวอย่างบางส่วน:
ถ่าน cvar = 50;
ถ่าน cvar = 50;
สวาร์สั้น = 50;
int ivar = 50;
ยาว lvar1 = 50;
ยาว lvar2 = 50;
ตัวดำเนินการทางคณิตศาสตร์พื้นฐาน:
ส่วนใหญ่คุ้นเคยกับตัวดำเนินการทางคณิตศาสตร์พื้นฐานและลำดับก่อนหน้า: + , -, *, /
นี่คือตัวอย่างบางส่วนของวิธีใช้ตัวดำเนินการ Unary: ++ และ --:
| การแสดงออก | เทียบเท่ากับ | เทียบเท่ากับ |
|---|---|---|
| cvar += 5; | cvar = cvar + 5; | |
| ++cvar; | cvar++; | cvar = cvar + 1; |
| --cvar; | cvar--; | cvar = cvar - 1; |
ระวังตัวแปร++ กับ ++ตัวแปร!
++ตัวแปร
int x = 10, y = 20;
X = ++y;
หมายเหตุ: หลังจากการดำเนินการนี้: X = 21 และ Y = 21 ด้วย
ตัวแปร++
int x = 10, y = 20;
X = y++;
หมายเหตุ: หลังจากการดำเนินการนี้: X = 20 และ Y = 21
เปรียบเทียบชนิดข้อมูลจำนวนเต็ม
มีกลุ่มหรือประเภทข้อมูลที่อนุญาตทั้งค่าบวกและค่าลบ – “ลงนาม” อย่างไรก็ตาม คุณไม่จำเป็นต้องระบุสิ่งนั้นเนื่องจากเป็นนัย ดูด้านล่าง:
| ประเภทข้อมูล | ค่าที่น้อยที่สุด | ค่าสูงสุด |
|---|---|---|
| ชาร์ | -2 7 หรือ -128 | 2 7 - 1 หรือ 127 |
| สั้น | -2 15 หรือ -32,768 | 2 15 - 1 หรือ 32,767 |
| อินท์ | -2 31 หรือ -2,147,483,648 | 2 31 – 1 หรือ 2,147,483,647 |
| ยาว | -2 31 หรือ -2,147,483,648 | 2 31 – 1 หรือ 2,147,483,647 |
| ยาวนาน ยาวนาน | -2 63 หรือ -9,223,372,036,854,775,808 | 2 63 – 1 หรือ 9,223,372,036,854,775,807 |
มีกลุ่มหรือประเภทข้อมูลที่อนุญาตเฉพาะค่าบวก - "ไม่ได้ลงนาม"
| ประเภทข้อมูล | ค่าที่น้อยที่สุด | ค่าสูงสุด |
|---|---|---|
| อักขระที่ไม่มีเครื่องหมาย | 0 | 2 8 - 1 หรือ 255 |
| ชอร์ตที่ไม่มีลายเซ็น | 0 | 2 16 - 1 หรือ 65,535 |
| จำนวนเต็มที่ไม่มีเครื่องหมาย | 0 | 2 32 – 1 หรือ 4,294,967,295 |
| ยังไม่ได้ลงชื่อยาว | 0 | 2 32 – 1 หรือ 4,294,967,295 |
| ไม่มีลายเซ็นต์ ยาว ยาว | 0 | 2 64 – 1 หรือ 18,446,744,073,709,551,615 |
คุณจะตรวจสอบขนาดข้อมูลได้อย่างไร?
ในตอนนี้ คุณควรทราบตัวดำเนินการ sizeof( ) นี่เป็นหน่วยเก็บข้อมูลหน่วยความจำที่เรียกว่า "ไบต์" ซึ่งจะกล่าวถึงเล็กน้อยในส่วนถัดไป
ตัวอย่างที่จะบอกคุณว่า # ของไบต์ควรพิมพ์โดยใช้ตัวดำเนินการ sizeof() ลองใช้สิ่งนี้เพื่อตรวจสอบด้วยตนเอง หากคุณเปลี่ยนไปใช้คอนโทรลเลอร์อื่น คุณสามารถทำสิ่งต่อไปนี้เพื่อตรวจสอบได้เสมอ
Brain.Screen.setFont(fontType::mono30);
Brain.Screen.printAt(1, 20,"char มี %d ไบต์", sizeof(char));
Brain.Screen.printAt(1, 50,"short มี %d ไบต์", sizeof(short));
Brain.Screen.printAt(1, 80,"int มี %d ไบต์", sizeof(int));
Brain.Screen.printAt(1, 110, "long มี %d ไบต์", sizeof(long));
Brain.Screen.printAt(1, 140, "long long มี %d ไบต์", sizeof(long long));
Brain.Screen.printAt(1, 170, "float มี %d ไบต์", sizeof(float));
Brain.Screen.printAt(1, 200, "double มี %d ไบต์", sizeof(double));
ข้อความที่แสดงบนหน้าจอ V5 Brain:
char มี 1 ไบต์
มี 2 ไบต์ int มี
ไบต์ long มี
ไบต์
long มี
ไบต์ float มี 4 ไบต์
มี 8 ไบต์ไบต์หมายถึงอะไร
“ไบต์” เป็นหน่วยมาตรฐานของการจัดเก็บข้อมูล
หนึ่งไบต์ = 8 บิต หนึ่งบิตเป็นหน่วยหน่วยความจำที่เล็กที่สุดซึ่งสามารถมีค่าได้เพียง 1 วินาทีและ 0 วินาที (ค่าไบนารี) แต่หน่วยหน่วยความจำที่เล็กที่สุดที่คุณสามารถรับได้จากระบบคือ 1 ไบต์ ดังนั้นคุณไม่สามารถขอ 1.5 ไบต์ ฯลฯ
มาดูชาร์กันดีกว่า สั้นพอที่จะแสดงได้อย่างง่ายดาย
หากเต็มไปด้วย 1 คุณจะได้ 28-1 ค่านี้ควรเป็นค่าสูงสุดของ "ถ่านที่ไม่ได้ลงนาม" ที่ควรเก็บไว้
ระบบขอสงวน บิตลำดับสูงสุด เพื่อให้ค่าลบ ดังนั้นค่าสูงสุดสำหรับ "ถ่าน" อยู่ในช่วงตั้งแต่ -128 ถึง 127 อย่างไรก็ตาม ความจุยังคงเหมือนกับ “ถ่านที่ไม่ได้ลงนาม” แม้ว่าช่วงข้อมูลจะแตกต่างกันก็ตาม
ในคอมพิวเตอร์ จะใช้การดำเนินการที่เรียกว่า Two's Complement นี่เป็นส่วนหนึ่งของหัวข้อภายใต้การดำเนินการของ Bitwise ซึ่งอยู่นอกขอบเขตสำหรับเอกสารนี้ เพิ่มเติมเกี่ยวกับหัวข้อนี้จะกล่าวถึงในเอกสารอื่น
ความแตกต่างระหว่าง char กับ int คืออะไร?
ต่อไปนี้เป็นการใช้งานทั่วไปสำหรับ "char" และ "int":
char var1 = '9';
int var2 = 9;
เป็นความเข้าใจผิดที่พบบ่อยว่า "char" สามารถเก็บได้เฉพาะสัญลักษณ์เช่น 'a' 'b' หรือ '9' เท่านั้น นั่นไม่ถูกต้อง
ที่จริงแล้ว ประเภท "char" จะเหมือนกับประเภท "int" ยกเว้นว่าความจุของ char นั้นมีเพียง 1 ไบต์ และความจุของ int คือ 4 ไบต์ ดังนั้นช่วงขนาดข้อมูลจึงแตกต่างกันระหว่างทั้งสอง คุณจะเห็นได้ว่าในตารางช่วงข้อมูลด้านบน
ส่วนของโค้ดต่อไปนี้จะช่วยให้คุณมองเห็น char และ int ได้ชัดเจนยิ่งขึ้น
int iX = '0';
char cX1 = 49;
char cX2 = 50;
Brain.Screen.printAt(3, 20, "int representation of '%c' = %d",iX, iX);
Brain.Screen.printAt(3, 50, "int representation of '%c' = %d",cX1, cX1);
Brain.Screen.printAt(3, 80, "int representation of '%c' = %d",cX2, cX2);
Brain.Screen.printAt(3, 140, "So '%c' - '%c' = %d ", cX2, iX, cX2 - cX1);
เอาท์พุท:
ค่าจำนวนเต็มของ '0' = 48
ค่าจำนวนเต็มของ '1' = 49
ค่าจำนวนเต็มของ '2' = 50
ดังนั้น '2' – '0' = 1
คุณอาจสงสัยว่า: ทำไม '0' ถึงแสดง 48?
ซึ่งจะนำไปสู่หัวข้อที่เรียกว่าการแปลง "รหัส ASCII" มาตรฐาน ASCII เป็นหนึ่งในเหตุการณ์สำคัญที่สำคัญของ IEEE ที่เผยแพร่ในปี 1963 สิ่งนี้อยู่นอกขอบเขตของบทความนี้ ขอแนะนำให้คุณค้นหาตารางรหัส ASCII ทางออนไลน์ คุณจะพบข้อมูลออนไลน์มากมายเกี่ยวกับตารางรหัส ASCII