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: ++ และ --:
| การแสดงออก | เทียบเท่ากับ | ยังเทียบเท่ากับ |
|---|---|---|
| ซีวาร์ += 5; | ซีวาร์ = ซีวาร์ + 5; | |
| ++ซีวาร์; | ซีวาร์++; | ซีวาร์ = ซีวาร์ + 1; |
| --ซีวาร์; | ซีวาร์--; | ซีวาร์ = ซีวาร์ - 1; |
ระวังตัวแปร++ กับ ++ตัวแปร!
++ตัวแปร
int x = 10, y = 20; X = ++y;
หมายเหตุ: หลังจากการดำเนินการนี้: X = 21 และ Y = 21 ด้วย
ตัวแปร++
int x = 10, y = 20; X = ย++;
หมายเหตุ: หลังจากการดำเนินการนี้: 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 |
| int ที่ไม่ได้ลงนาม | 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 ไบต์", ขนาดของ (char)); Brain.Screen.printAt (1, 50, "สั้นมี %d ไบต์", ขนาดของ (สั้น)); Brain.Screen.printAt(1, 80,"int มี %d ไบต์", ขนาดของ (int)); Brain.Screen.printAt(1, 110, "long มี %d ไบต์", ขนาดของ (ยาว)); Brain.Screen.printAt(1, 140, "long long มี %d ไบต์", ขนาดของ (long long)); Brain.Screen.printAt(1, 170, "float มี %d ไบต์", ขนาดของ (float)); Brain.Screen.printAt(1, 200, "double มี %d ไบต์", ขนาดของ (double));
ไบต์หมายถึงอะไร
“ไบต์” เป็นหน่วยมาตรฐานของการจัดเก็บข้อมูล
หนึ่งไบต์ = 8 บิต หนึ่งบิตเป็นหน่วยหน่วยความจำที่เล็กที่สุดซึ่งสามารถมีค่าได้เพียง 1 วินาทีและ 0 วินาที (ค่าไบนารี) แต่หน่วยหน่วยความจำที่เล็กที่สุดที่คุณสามารถรับได้จากระบบคือ 1 ไบต์ ดังนั้นคุณไม่สามารถขอ 1.5 ไบต์ ฯลฯ
มาดูชาร์กันดีกว่า สั้นพอที่จะแสดงได้อย่างง่ายดาย
หากเต็มไปด้วย 1 คุณจะได้ 28-1 ค่านี้ควรเป็นค่าสูงสุดของ "ถ่านที่ไม่ได้ลงนาม" ที่ควรเก็บไว้
ระบบขอสงวน บิตลำดับสูงสุด เพื่อให้ค่าลบ ดังนั้นค่าสูงสุดสำหรับ "ถ่าน" อยู่ในช่วงตั้งแต่ -128 ถึง 127 อย่างไรก็ตาม ความจุยังคงเหมือนกับ “ถ่านที่ไม่ได้ลงนาม” แม้ว่าช่วงข้อมูลจะแตกต่างกันก็ตาม
ในคอมพิวเตอร์ จะใช้การดำเนินการที่เรียกว่า Two's Complement นี่เป็นส่วนหนึ่งของหัวข้อภายใต้การดำเนินการของ Bitwise ซึ่งอยู่นอกขอบเขตสำหรับเอกสารนี้ เพิ่มเติมเกี่ยวกับหัวข้อนี้จะกล่าวถึงในเอกสารอื่น
ความแตกต่างระหว่าง char กับ int คืออะไร?
ต่อไปนี้เป็นการใช้งานทั่วไปสำหรับ "char" และ "int":
ถ่าน var1 = '9'; int var2 = 9;
เป็นความเข้าใจผิดที่พบบ่อยว่า "char" สามารถเก็บได้เฉพาะสัญลักษณ์เช่น 'a' 'b' หรือ '9' เท่านั้น นั่นไม่ถูกต้อง
ที่จริงแล้ว ประเภท "char" จะเหมือนกับประเภท "int" ยกเว้นว่าความจุของ char นั้นมีเพียง 1 ไบต์ และความจุของ int คือ 4 ไบต์ ดังนั้นช่วงขนาดข้อมูลจึงแตกต่างกันระหว่างทั้งสอง คุณจะเห็นได้ว่าในตารางช่วงข้อมูลด้านบน
ส่วนของโค้ดต่อไปนี้จะช่วยให้คุณมองเห็น char และ int ได้ชัดเจนยิ่งขึ้น
int iX = '0'; ถ่าน cX1 = 49; ถ่าน cX2 = 50; Brain.Screen.printAt(3, 20, "int การแสดงของ '%c' = %d", iX, iX); Brain.Screen.printAt(3, 50, "int การแสดงของ '%c' = %d",cX1, cX1); Brain.Screen.printAt(3, 80, "int การแสดงของ '%c' = %d",cX2, cX2); Brain.Screen.printAt(3, 140, "ดังนั้น '%c' - '%c' = %d ", cX2, iX, cX2 - cX1);
เอาท์พุท:
การแทนค่า int ของ '0' = 48 การแทนค่า int ของ '1' = 49 การแทนค่า int ของ '2' = 50 ดังนั้น '2' – '0' = 1
คุณอาจสงสัยว่า: ทำไม '0' ถึงแสดง 48?
ซึ่งจะนำไปสู่หัวข้อที่เรียกว่าการแปลง "รหัส ASCII" มาตรฐาน ASCII เป็นหนึ่งในเหตุการณ์สำคัญที่สำคัญของ IEEE ที่เผยแพร่ในปี 1963 สิ่งนี้อยู่นอกขอบเขตของบทความนี้ ขอแนะนำให้คุณค้นหาตารางรหัส ASCII ทางออนไลน์ คุณจะพบข้อมูลออนไลน์มากมายเกี่ยวกับตารางรหัส ASCII