Logo Studenta

09_Uniones, manipulaciones de bits y enumeraciones

¡Este material tiene más páginas!

Vista previa del material en texto

 Una unión es un tipo de dato compuesto 
formado por varios campos (como una 
estructura) que comparten la misma área de 
memoria. 
 El tamaño de la unión debe ser al menos el 
necesario para albergar a su campo más 
grande. 
 Sólo un miembro de la estructura puede ser 
almacenado y referenciado en un momento 
dado. 
Ocupan la misma área 
de memoria. Por lo tanto, 
sólo puede haber un 
valor por vez 
El valor inicial indicado 
en la declaración 
debe ser del tipo del 
primer miembro 
El valor de x se 
pierde al indicar 
un valor para y 
El valor 10 ya no está almacenado 
en x 
 Las operaciones válidas son 
› Asignar una unión a otra unión del mismo 
tipo. 
› Obtener la dirección de una unión 
mediante el operador &. 
› Acceder a los elementos de la unión. 
 
 El nombre de una persona se puede 
almacenar como 
› Una cadena de caracteres de long.30. 
› Una cadena de caracteres de longitud 
10. 
› Sólo con la inicial. 
 
 Defina la estructura de datos más 
adecuada 
 
UnionPersona.c 
 
UnionPersona.c 
 Defina una estructura de datos que 
permita representar la información de 
una persona que puede ser 
 Alumno 
› Nombre de la carrera 
› Porcentaje de materias aprobadas 
 Empleado 
› Nombre de la empresa 
› Sueldo 
› Años de antigüedad 
Ope-
rador 
Operación Descripción 
& AND 
Los bits en el resultado serán 1 si los 
bits correspondientes en ambos 
operandos también lo son. 
| OR 
Los bits en el resultado serán 1 si al 
menos 1 de los bits correspondientes 
en los dos operandos es 1. 
^ OR exclusivo 
Los bits en el resultado serán 1 si 
exactamente 1 de los bits 
correspondientes en los dos 
operandos es 1. 
Ope-
rador 
Operación Descripción 
<< 
Desplazamien-
to a izquierda 
Desplaza los bits del primer operando 
hacia la izquierda en el número de 
bits especificado por el segundo 
operando. Rellena por la derecha 
con bits 0. 
>> 
Desplazamien-
to a derecha 
Idem anterior desplazando a 
derecha y rellenando por izquierda 
~ 
Complemento 
a 1 
Todos los bits 0 se definen a 1 y todos 
los bits 1 se definen a cero. 
Mascara 
10000000 00000000 
Desplaza los bits de v un lugar a la izquierda y 
completa el bit de más a la derecha con 0 
Valdrá 0x8000 si el bit más a la 
izquierda de v vale 1 y 0x0000 si no. 
OperBits1.c 
 
 
 
Ope-
rador 
Operación Ejemplo Equivale a 
&= AND nro1 &= nro2 nro1 = nro1 & nro2 
|= OR nro1 |= nro2 nro1 = nro1 | nro2 
^= OR exclusivo nro1 ^= nro2 nro1 = nro1 ^ nro2 
<<= 
Desplazamiento a 
izquierda 
nro1 <<= 5 nro1 = nro1 << 5 
>>= 
Desplazamiento a 
derecha 
nro1 >>= 5 nro1 = nro1 >> 5 
 En C es posible especificar el número de 
bits en el cual se almacena un miembro 
unsigned o int de una estructura o de 
una unión, denominados campos de bits 
 Los campos de bits permiten mejorar el 
uso de memoria almacenando datos en 
el mínimo número de bits requeridos. 
 Los miembros de campos de bits deben 
ser declarados como int o unsigned. 
 Ejemplo 
 
 
 
 
 
 Los campos se acceden de la manera 
convencional. 
 Una enumeración es una lista de 
constantes enteras representadas por 
identificadores. 
 Se indica mediante la palabra 
reservada enum. 
 El primer elemento de la lista se inicia 
con 0, a menos que se indique de otra 
manera. Se incrementan en 1. 
 Imprime los números del 2 al 10 
 Puede modificarse el valor inicial

Continuar navegando

Materiales relacionados

192 pag.
Python 3

SIN SIGLA

User badge image

Stiven Fajardo

136 pag.
24 pag.
Guia_Laboratorio_3_Pseudocodigo_Diagr_Flujo

Escola Maria Pastora Bispo

User badge image

JEAN PAUL MEZA CALCINA