在 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: