Criando Variáveis ​​para Números Inteiros no 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.

Tipos que armazenam números inteiros: char, short, int, long, long long

Vejamos alguns exemplos:

char cvar = 50;
caracteres cvar = 50;
svar curto = 50;
ivar = 50;
lvar1 longo = 50;
lvar2 longo = 50;

Operadores Aritméticos Básicos:

A maioria está familiarizada com os operadores aritméticos básicos e a ordem de precedência: + , -, *, /

Aqui estão alguns exemplos de como usar o operador Unário: ++ e --:

Expressão Equivalente a Também equivalente a
var += 5; cvar = cvar + 5;  
++cvar; cvar++; cvar = cvar + 1;
--cvar; cvar--; cvar = cvar - 1;

Cuidado com a variável++ vs. variável ++!

++variável

interno x = 10, y = 20; 
X = ++y;

Nota: após esta operação: X = 21, e Y também = 21.

variável++

interno x = 10, y = 20; 
X = y++;

Nota: após esta operação: X = 20 e Y = 21.


Comparar tipo de dados inteiro

Existe um grupo ou tipo de dados que permite valores positivos e negativos – “assinado”. No entanto, você não precisa especificar isso, pois está implícito. Veja abaixo:

Tipo de dados Menor valor Maior valor
Caracteres -2 7 ou -128 2 7 - 1 ou 127
curto -2 15 ou -32.768 2 15 - 1 ou 32.767
interno -2 31 ou -2.147.483.648 2 31 – 1 ou 2.147.483.647
longo -2 31 ou -2.147.483.648 2 31 – 1 ou 2.147.483.647
longo longo -2 63 ou -9.223.372.036.854.775.808 2 63 – 1 ou 9.223.372.036.854.775.807

Existe um grupo ou tipo de dados que permite apenas valores positivos – “não assinado”.

Tipo de dados Menor valor Maior valor
caracter não identifcado 0 2 8 - 1 ou 255
curto não assinado 0 2 16 - 1 ou 65.535
int não assinado 0 2 32 – 1 ou 4.294.967.295
não assinado longo 0 2 32 – 1 ou 4.294.967.295
não assinado muito tempo 0 2 64 – 1 ou 18.446.744.073.709.551.615

Como você verifica o tamanho dos dados?

Por enquanto, você deve conhecer o operador sizeof(). Isso fornece a unidade de armazenamento de memória chamada “bytes” – que será abordada um pouco na próxima seção.

Exemplo para informar o número de bytes que você deve digitar usando o operador sizeof(). Experimente isso para verificá-los você mesmo. Se você mudar para outro controlador, poderá sempre fazer o seguinte para verificar.

Brain.Screen.setFont(fontType::mono30);    
Brain.Screen.printAt(1, 20,"char tem %d byte", sizeof(char));
Brain.Screen.printAt(1, 50,"short tem %d bytes", sizeof(short)); 
Brain.Screen.printAt(1, 80,"int tem %d bytes", sizeof(int));
Brain.Screen.printAt(1, 110, "long tem %d bytes", sizeof(long));
Brain.Screen.printAt(1, 140, "long long tem %d bytes", sizeof(long long));
Brain.Screen.printAt(1, 170, "float tem %d bytes", sizeof(float));
Brain.Screen.printAt(1, 200, "duplo tem %d bytes", sizeof(duplo));

vartypes.png


O que significa um byte?

Um “Byte” é uma unidade padrão de armazenamento de dados.

Um Byte = 8 bits. Um bit é a menor unidade de memória que só pode ter o valor de 1s e 0s (valor binário). Porém, a menor unidade de memória que você pode adquirir do sistema é 1 byte; então você não pode pedir 1,5 byte, etc.

Vamos dar uma olhada em char. É curto o suficiente para ser exibido facilmente.

usignedchar.jpg

Se tudo estiver preenchido com 1s, você obtém 28-1. Este valor deve ser o valor máximo que “unsigned char” deve conter.

charvalues.jpg

O sistema reserva o bit de ordem alta para fornecer um valor negativo. Assim, o valor máximo para um “char” varia de -128 a 127. No entanto, a capacidade ainda é a mesma de “unsigned char”, apesar da diferença no intervalo de dados.

No computador, utiliza uma operação chamada Complemento de Dois. Isso faz parte dos tópicos da operação Bitwise, que está fora do escopo deste documento. Mais sobre este tópico será discutido em outro documento.


Qual é a diferença entre char e int?

Aqui estão alguns usos comuns para “char” e “int”:

char var1 = '9'; 
int var2 = 9;

É um equívoco comum pensar que "char" só pode conter símbolos como 'a', 'b' ou '9'. Isso está incorreto.

Na verdade, o tipo “char” é igual ao tipo “int”, exceto que a capacidade do char é de apenas 1 byte e a capacidade do int é de 4 bytes. Portanto, o intervalo de tamanho dos dados é diferente entre os dois. Você pode ver isso na tabela de intervalo de dados acima.

Os segmentos de código a seguir fornecerão uma visão mais clara de char e int.

int iX = '0';
  caractere cX1 = 49;
  caractere cX2 = 50; 

  Brain.Screen.printAt(3, 20, "int representação de '%c' =  %d",iX, iX);
  Brain.Screen.printAt(3, 50, "int representação de '%c' =  %d",cX1, cX1);
  Brain.Screen.printAt(3, 80, "int representação de '%c' =  %d",cX2, cX2);
  Brain.Screen.printAt(3, 140, "Então '%c' - '%c' =  %d ", cX2, iX, cX2 - cX1);

Saída:

representação int de '0' = 48
representação int de '1' = 49
representação int de '2' = 50

Então '2' – '0' = 1

Você pode se perguntar: por que '0' mostra 48?

Isso levará aos tópicos chamados de conversão de “Código ASCII”. O padrão ASCII é um grande marco do IEEE publicado em 1963. Isso está fora do escopo deste artigo. Recomendamos que você consulte a tabela de códigos ASCII online. Você encontrará uma infinidade de informações online sobre a tabela de códigos ASCII.

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

Last Updated: