Conceito de variável
Em programação variável é um objeto ou um espaço na memória onde podemos armazenar um valor. Uma variável só existe em tempo de execução, ou seja, quando o programa está sendo executado, elas são associadas a nomes. Ao nomear uma variável devemos sempre ser o mais descritivos possível.As variáveis são definidas por tipos, existem os tipos textuais, os tipos inteiros, os tipos de ponto flutuante que serão descritos na tabela abaixo:
Tipo C# |
Valores possíveis |
Tamanho na memória |
Valor padrão |
bool | true (verdadeiro) ou false (falso) | 1 bit | false |
byte | 0 a 255 | 1 byte | false |
sbyte | -128 a 127 | 1 byte | false |
char | um caractere | 2 bytes | '\0' |
decimal | Valores decimais com 128 bits de precisão, 28~29 digitos significantes | (-7,9 x 1028 a 7,9 x 1028) / 100 to 28 | 0.0M |
double | Valores decimais com 64 bits de precisão | (+/-)5,0 x 10-324 a (+/-)1,7 x 10308 | 0.0D |
float | Valores decimais com 32 bits | -3,4 x 1038 a + 3,4 x 1038 | 0.0F |
int | Inteiro com 32 bits | -2.147.483.648 a 2.147.483.647 | 0 |
long | Inteiro com 64 bits | -923.372.036.854.775.808 a 9.223.372.036.854.775.807 | 0L |
sbyte | Inteiro de 8 bits | -128 a 127 | 0 |
short | Inteiro de 16 bits | -32.768 a 32.767 | 0 |
uint | Inteiro positivo de 32 bits | 0 a 4.294.967.295 | 0 |
ulong | Inteiro positivo 64 bits | 0 a 18.446.744.073.709.551.615 | 0 |
ushort | Inteiro positivo 16 bits | 0 a 65.535 | 0 |
string | Conjunto de caracteres, sendo 16 bits por caractere | texto tamanho ilimitado | "" |
Quando criamos, ou declaramos, uma variável estamos reservando um espaço na memória para armazenar aquele valor. Por exemplo ao declarar uma variável do tipo long, estamos reservando 64 bits de memoria para esta variável.
Cada tipo de variável possui um determinado tamanho e a capacidade de armazenar uma certa quantidade de dados, conforme mostrado na tabela acima.
Um ponto importante e explicar qual e a diferenca entre o decimal, o double e o float. O double e o float são números binários de ponto flutuante, ou seja, eles representam um número desta forma:
100101,10101100Já o decimal é um número decimal de ponto flutuante, ou seja eles representam um número desta forma:
1234,56O importante de tudo isso é que nós estamos acostumados a representar números decimais da mesma forma que o decimal faz, e nós sempre esperamos ter o resultado exato deste número. Quando isso é feito por uma representação binária, por exemplo o 0,1 usando uma representação binária, nós teremos um valor aproximado de 0,1.
Portanto ao usar double e float nós temos uma aproximação do valor, já com decimal este valor sempre será exato.
Quando usar um e quando usar outro? Bom o exemplo mais comum que temos de uso do decimal são valores monetários, ao depositar 10,20 na sua conta do banco, você espera sempre ter este valor exatamente assim depositado em sua conta, sem arredondamentos.
Já o float e o decimal podem ser usados para cálculos de média, dados científicos, etc.
Operadores matemáticos:
Tipo do Operador |
Como usar |
Descrição |
Multiplicador e divisão | x * y
x / y x % y |
* define a multiplicação, / define a divisão e % define o resto da divisão |
Soma e subtração | x + y
x - y |
+ define a adição
- define a subtração |
Shift | x << y
x >> y |
<< define um deslocamento binario a esquerda >> define um deslocamento binário a direita |
Todos os operadores mostrados na tabela acima estão em ordem de execução, portando o * é o operador que tem a máxima prioridade, se tivermos a seguinte expressão:
Tirando os operadores matemáticos básicos, o que temos de novo aqui são os operadores de shift, que deslocam um bit pra esquerda ou pra direita. Na operação de deslocamento pra esquerda acontece uma multiplicação do valor da esquerda por 2 elevado a n, onde n é o valor que está a direita:
int valor = 1+ 2 * 3O resultado desta operação seria 7, já que * tem precedência ao + a operação que será realizada seria:
int valor = 1 + (2 * 3)A precedencia dos operadores define quem é executado primeiro, e esta ordem se dá de cima para baixo na tabela mostrada acima.
valor = 1 + 6
valor = 7
Tirando os operadores matemáticos básicos, o que temos de novo aqui são os operadores de shift, que deslocam um bit pra esquerda ou pra direita. Na operação de deslocamento pra esquerda acontece uma multiplicação do valor da esquerda por 2 elevado a n, onde n é o valor que está a direita:
1 << 1 = 1 * 2 ^1 -> 1 * 2 = 2Já na operação de deslocamento pra direita acontece uma divisão do valor da esquerda por 2 elevado a n, onde n é o valor que está a direita:
res0: Int = 2
1 << 2 = 1 * 2 ^2 -> 1 * 4 = 4
res1: Int = 4
1 << 3 = 1 * 2 ^3 -> 1 * 8 = 8
res2: Int = 8
2 << 1 = 2 * 2 ^1 -> 2 * 2 = 4
res3: Int = 4
2 << 2 = 2 * 2 ^2 -> 2 * 4 = 8
res4: Int = 8
2 << 3 = 2 * 2 ^3 -> 2 * 8 = 16
res5: Int = 16
2 << 4 = 2 * 2 ^1 -> 2 * 2 = 4
res6: Int = 32
scala> 16 >> 2 = 16 / 2 ^2 -> 16 / 4 =4
res22: Int = 4
scala> 16 >> 1 = 16 / 2 ^1 -> 16 / 2 =8
res23: Int = 8
Nenhum comentário:
Postar um comentário