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.




anterior

índice

próxima


HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO