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));
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.
Se tudo estiver preenchido com 1s, você obtém 28-1. Este valor deve ser o valor máximo que “unsigned char” deve conter.
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.