在 VEXcode Pro V5 中為整數建立變數

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;
短 svar = 50;
int ivar = 50;
長lvar1=50;
長lvar2=50;

基本算術運算子:

大多數人都熟悉基本算術運算子和優先順序:+、-、*、/

以下是如何使用一元運算子的一些範例:++ 和 --:

表達 相當於 也相當於
cvar += 5; cvar = cvar + 5;  
++cvar; cvar++; cvar = cvar + 1;
--cvar; cvar--; cvar = cvar - 1;

當心變數 ++ 與 ++ 變數!

++變數

整數 x = 10,y = 20; 
X = ++y;

注意:此操作後:X = 21,Y 也 = 21。

變數++

整數 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));

變數類型.png


一個位元組是什麼意思?

「位元組」是資料儲存的標準單位。

1 位元組 = 8 位元。 一位是最小的儲存單元,只能有1和0(二進位值)的值。 但是,您可以從系統取得的最小記憶體單位是 1 個位元組;所以你不能要求 1.5 位元組等。

我們來看看char。 它足夠短,可以輕鬆顯示。

ussignedchar.jpg

如果全部填滿 1,則得到 28-1。 該值應該是“unsigned char”應保持的最大值。

字元值.jpg

系統保留 最高位 以便給出負值。 因此,「char」的最大值範圍為 -128 到 127。 然而,儘管數據範圍有所不同,但容量仍然與“unsigned char”相同。

在計算機中,它使用一種稱為補碼的運算。 這是位元運算主題的一部分,超出了本文檔的範圍。 有關此主題的更多資訊將在另一篇文件中討論。


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';
  字元 cX1 = 49;
  字元 cX2 = 50; 

  Brain.Screen.printAt(3, 20, "'%c' =  %d的 int 表示形式",iX, iX);
  Brain.Screen.printAt(3, 50, "'%c' =  %d的 int 表示形式",cX1, cX1);
  Brain.Screen.printAt(3, 80, "‘%c’的 int 表示 =  %d”,cX2, cX2);
  Brain.Screen.printAt(3, 140, "所以 '%c' - '%c' =  %d ", cX2, iX, cX2 - cX1);

輸出:

'0' 的 int 表示 = 48
'1' 的 int 表示 = 49
'2' 的 int 表示 = 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: