1.1.3 Constantes carácter /cadena
Tipo de dato “char”
char (carácter 1 byte)
El tipo char es utilizado para
almacenar un valor entero en el rango de
-128 a 127, correspondiente a un carácter del código ASCII. Solamente los valores de 0 a 127 son
equivalentes a un carácter.
De forma similar el tipo unsigned
char puede almacenar valores en rango de 0 a 255, valores correspondientes a los
números ordinales de los 256 caracteres ASCII.
En ASCII C, signed y unsigned char son tipos diferentes.
Ejemplo, char car;
Este ejemplo declara una variable llamada car de tipo char, capaz de
contener un carácter cuyo código ASCII se corresponderá con un valor
entero entre 0 y 127. Otros ejemplos son:
char
a = ’z’;
signed
char b = 0x07;
unsigned
char c = 32;
char
es la abreviación de signed char.
ocupa 1 byte de memoria
1 byte = 8 bits
8 bits = 1 byte
|
|
|
|
|
|
|
|
|
|
Byte
1 |
|||||||
|
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
|
Signo |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
El
signo contendrá:
0 que
representa un número positivo (+)
1 que
representa un número negativo (-)
La palabra bit proviene de: binary digit
Ejemplo:
00000000 = + 0
01111111 = + 127
11111111 = - 127
10000001 = -1
10000000 = -0 = -128
Rango de valores “char”: -128 a +127 (256
valores)
La tabla ASCII tiene 256 caracteres.
PROGRAMA # 2
Usando el tipo de dato unsigned
char, desplegar en la pantalla la tabla “ASCII”
#include <conio.h>
#include <stdio.h>
void
main()
{
unsigned
char c;
clrscr();
gotoxy(10,15);
printf ("PROGRAMA 1");
printf("\n\n\n\n Este programa
despliega en la pantalla la tabla ASCII");
printf("\ncon
el tipo de dato UNSIGNED CHAR, mostrando en una tabla las");
printf("\ncolumnas CARACTER, VALOR DECIMAL Y HEXADECIMAL");
getch();
clrscr();
printf("CARACTER\t VALOR
DECIMAL\t VALOR HEXADECIMAL");
for
(c=0; c<=254; c++)
{
printf("\n
%c\t\t\%d\t\t%x", c,c,c);
if(c==40||c==80||c==120||c==160||c==200||c==240)
{
getch();
clrscr();
printf("CARACTER\t VALOR
DECIMAL\t VALOR HEXADECIMAL");
}
}
printf("\n%c\t%d\t%x",
c,c,c);
getche();
}