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();

}