การสร้างตัวแปรสำหรับจำนวนเต็มใน VEXcode Pro V5

ประเภทที่มีจำนวนเต็ม: char, short, int, long, long long

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

ถ่าน cvar = 50;
ถ่าน cvar = 50;
svar แบบสั้น = 50;
int ivar = 50;
ยาว lvar1 = 50;
ยาว lvar2 = 50;

ตัวดำเนินการเลขคณิตพื้นฐาน:

ส่วนใหญ่จะคุ้นเคยกับตัวดำเนินการเลขคณิตพื้นฐานและลำดับความสำคัญ: + , -, *, /

ต่อไปนี้คือตัวอย่างวิธีการใช้ตัวดำเนินการ Unary: ++ และ --:

การแสดงออก เทียบเท่ากับ เทียบเท่ากับ
cvar += 5; cvar = cvar + 5;  
++ซีวาร์; cvar++; cvar = cvar + 1;
--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


เปรียบเทียบประเภทข้อมูลจำนวนเต็ม

มีกลุ่มหรือประเภทข้อมูลที่อนุญาตทั้งค่าบวกและค่าลบ - "ลงนาม" อย่างไรก็ตาม คุณไม่จำเป็นต้องระบุว่าเป็นนัย ดูด้านล่าง:

ประเภทข้อมูล ค่าน้อยที่สุด มูลค่าสูงสุด
char -2 7 หรือ -128 2 7 - 1 หรือ 127
สั้น -2 15 หรือ -32,768 2 15 - 1 หรือ 32,767
int -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 has %d ไบต์", sizeof(char));
Brain.Screen.printAt(1, 50,"short has %d ไบต์", sizeof(short)); 
Brain.Screen.printAt(1, 80,"int has %d ไบต์", sizeof(int));
Brain.Screen.printAt(1, 110, "long has %d ไบต์", sizeof(long));
Brain.Screen.printAt(1, 140, "long long has %d ไบต์", sizeof(long long));
Brain.Screen.printAt(1, 170, "float has %d ไบต์", sizeof(float));
Brain.Screen.printAt(1, 200, "double has %d ไบต์", sizeof(double));

vartypes.png


ไบต์หมายถึงอะไร

“ไบต์” เป็นหน่วยมาตรฐานของการจัดเก็บข้อมูล

หนึ่งไบต์ = 8 บิต หนึ่งบิตเป็นหน่วยหน่วยความจำที่เล็กที่สุดซึ่งสามารถมีค่าได้เพียง 1 วินาทีและ 0 วินาที (ค่าไบนารี) แต่หน่วยหน่วยความจำที่เล็กที่สุดที่คุณจะได้รับจากระบบคือ 1 ไบต์ ดังนั้นคุณไม่สามารถขอ 1.5 ไบต์ ฯลฯ

ลองมาดูที่ถ่าน สั้นพอที่จะแสดงได้ง่าย

usignedchar.jpg

หากเต็มไปด้วย 1 วินาที คุณจะได้รับ 28-1 ค่านี้ควรเป็นค่าสูงสุดของ "ถ่านที่ไม่ได้ลงนาม" ที่ควรเก็บไว้

charvalues.jpg

ระบบจะสงวนบิตการสั่งซื้อสูงสุด เพื่อให้ได้ค่าลบ ดังนั้น ค่าสูงสุดสำหรับ “ถ่าน” จะอยู่ในช่วงตั้งแต่ -128 ถึง 127 อย่างไรก็ตาม ความจุยังคงเท่ากับ "ถ่านที่ไม่ได้ลงนาม" แม้ว่าจะมีความแตกต่างในช่วงข้อมูลก็ตาม

ในคอมพิวเตอร์ จะใช้การดำเนินการที่เรียกว่า Two's Complement นี่เป็นส่วนหนึ่งของหัวข้อภายใต้การดำเนินการ Bitwise ซึ่งอยู่นอกขอบเขตสำหรับเอกสารนี้ เพิ่มเติมเกี่ยวกับหัวข้อนี้จะกล่าวถึงในเอกสารอื่น


char กับ int ต่างกันอย่างไร?

ต่อไปนี้คือการใช้งานทั่วไปสำหรับ "char" และ "int":

ถ่าน var1 = '9'; 
int var2 = 9;

เป็นความเข้าใจผิดทั่วไปที่ว่า "ถ่าน" สามารถเก็บเฉพาะสัญลักษณ์เช่น 'a,' 'b,' หรือ '9' นั่นไม่ถูกต้อง

อันที่จริง ประเภท "ถ่าน" นั้นเหมือนกับประเภท "int" ยกเว้นว่าความจุของถ่านนั้นมีเพียง 1 ไบต์ และความจุของ int คือ 4 ไบต์ ดังนั้น ช่วงขนาดข้อมูลจึงแตกต่างกันระหว่างทั้งสอง คุณจะเห็นได้ว่าในตารางช่วงข้อมูลด้านบน

ส่วนรหัสต่อไปนี้จะช่วยให้คุณมองเห็นอักขระและ int ได้ชัดเจนขึ้น

int iX = '0';
  ถ่าน cX1 = 49;
  ถ่าน cX2 = 50; 

  Brain.Screen.printAt(3, 20, "การแสดงแทน '%c' =  %d",iX, iX);
  Brain.Screen.printAt(3, 50, "การแสดงแทน '%c' =  %d",cX1, cX1);
  Brain.Screen.printAt(3, 80, "การแสดงแทน '%c' =  %d",cX2, cX2);
  Brain.Screen.printAt(3, 140, "So '%c' - '%c' =  %d ", cX2, iX, cX2 - cX1);

เอาท์พุท:

การแสดง int ของ '0' = 48
การแทนค่า int ของ '1' = 49
การแทนค่า int ของ '2' = 50

ดังนั้น '2' – '0' = 1

คุณอาจสงสัยว่าทำไม '0' ถึงแสดง 48

ซึ่งจะนำไปสู่หัวข้อที่เรียกว่าการแปลง “รหัส ASCII” มาตรฐาน ASCII เป็นหนึ่งในเหตุการณ์สำคัญของ IEEE ที่เผยแพร่ในปี 2506 ซึ่งอยู่นอกขอบเขตของบทความนี้ ขอแนะนำให้คุณค้นหาตารางรหัส ASCII ทางออนไลน์ คุณจะพบข้อมูลออนไลน์มากมายเกี่ยวกับตารางรหัส ASCII

For more information, help, and tips, check out the many resources at VEX Professional Development Plus