Modificadores de tipos
Podemos alterar o significado de um tipo básico de dados, adaptando-o a uma necessidade específica, por meio de modificadores de tipos precedendo os tipos na declaração:
signed (com sinal);
unsigned (sem sinal);
long (máxima precisão);
short (menor precisão).
|
Tipo |
bytes |
possíveis valores |
|
char |
1 |
-128 a 127 |
|
unsigned char |
1 |
0 a 255 |
|
signed char |
1 |
-128 a 127 |
|
int |
4 |
-2147483648 a 2147483647 |
|
unsigned int |
4 |
0 a 4294967295 |
|
signed int |
4 |
-2147483648 a 2147483647 |
|
short int |
2 |
-32768 a 32767 |
|
unsigned short int |
2 |
0 a 65535 |
|
signed short int |
2 |
-32768 a 32767 |
|
long int |
4 |
-2147483648 a 2147483647 |
|
signed long int |
4 |
-2147483648 a 2147483647 |
|
unsigned long int |
4 |
0 a 4294967295 |
|
float |
4 |
-(3.4e38) a 3.4e38 |
|
double |
8 |
1.7e308 a -(1.7e308) |
|
long double |
10 |
1.7e308 a -(1.7e308) |
O exemplo a seguir usa um Edit, um Memo e um Button no Form. Quando o usuário dá um clique no botão, um loop começa a contar uma seqüência de valores numéricos de caracteres para a variável unsigned char c e só a encerra quando contar o último caracter, o de número 254. No corpo desse loop, nós declaramos uma variável do tipo char, que converterá os valores numéricos da variável c para os elementos correspondentes aos números na tabela ASCII, atribuindo esses valores a ch. Feito isso os valores obtidos serão imprimidos no Edit, exibindo as correspondências encontradas. Concomitantemente, quando o dedo do usuário deixa de fazer pressão com o mouse sobre o botão, configurando o evento OnMouseUp, o conteúdo do Edit (no caso os valores 0 a 254 da tabela ASCII e mais alguns caracteres para facilitar a visualização e a leitura) é adicionado a Memo1.
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
/* Declara e inicializa com 0 uma variável do tipo unsigned char
dentro de um loop for; estabelece o limite de 254 para o loop;
determina o incremento da variável. */
for(unsigned char c = 0; c < 255; c++)
{
/*Declara uma variável que converterá os
números para o caracter da tabela ASCII*/
char ch = c;
/* Edit1 imprime os números, os caracteres correspondentes da
tabela ASCII e mais alguns caracteres para facilitar a leitura*/
Edit1 -> Text = Edit1 -> Text + c + ' ' + '=' + ' ' + ch + ' ' + ' ';
}
}
//------------------------------------------------------------------
void __fastcall TForm1::BitBtn1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
// Adiciona o conteúdo de Edit1 a Memo1
Memo1->Lines->Add(Edit1->Text);
}
O exemplo acima pode ser modificado para exibir somente alguns caracteres ASCII. Por exemplo, após rodar a aplicação, o programa apresentará para você o número de cada caracter. Com base nestas informações, você poderá, facilmente, montar um programa que imprima somente as letras minúsculas do alfabeto etc.
|
HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO |