การสร้างตัวแปรสำหรับจำนวนเต็มใน 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));

วาร์ไทป์ส.png


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

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

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

มาดูชาร์กันดีกว่า สั้นพอที่จะแสดงได้อย่างง่ายดาย

usignedchar.jpg

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

charvalues.jpg

ระบบขอสงวน บิตลำดับสูงสุด เพื่อให้เป็นค่าลบ ดังนั้นค่าสูงสุดสำหรับ "ถ่าน" อยู่ในช่วงตั้งแต่ -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, "การแสดงแทน '%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 ที่เผยแพร่ในปี 1963 สิ่งนี้อยู่นอกขอบเขตของบทความนี้ ขอแนะนำให้คุณค้นหาตารางรหัส ASCII ทางออนไลน์ คุณจะพบข้อมูลออนไลน์มากมายเกี่ยวกับตารางรหัส ASCII

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

Last Updated: