|
11.6.-
Si su sistema utiliza enteros de 4 bytes, vuelva a escribir el programa
del ejercicio 11.4 para empacar cuatro caracteres.
11.7.-
Si su sistema utiliza enteros de 4 bytes , vuelva a imprimir la
función unpackCharacters del ejercicio 11.5 para desempacar
4 caracteres. Crear la máscaras que necesite para desempacar
los 4 caracteres desplazando hacia la izquierda el valor 255 en
la variable de enmascaramiento en 8 bits 0, 1, 2 o 3 veces, (dependiendo
del byte que está desempacando).
11.8.-
Escriba un programa que invierta el orden de los bits de un valor
entero no signado. El programa deberá introducir el valor
proveniente del usuario y llama a la función reverseBits
para imprimir los bits en orden inverso. Imprima el valor en bits
tanto antes como después de la inversión de bits,
para confirmar que los bits hayan sido invertidos correctamente.
11.9.-
El programa siguiente utiliza la función múltiple
para determinar si el entero introducido desde el teclado es un
múltiplo de algún entero x. Examine la función
múltiple y a continuación determine el valor de x.
/*
Este programa determina si un valor es múltiplo de x
*/
#include
<stdio.h>
int
multiple(int);
main()
{
int
y;
printf("Introduce
un entero entre 1 y 32000: ");
scanf("%d",
&y);
if
(multiple(y))
printf("%d
es un múltiplo de x\n", y);
else
printf("%d
no es un múltiplo de x\n", y);
return
0;
}
int
multiple(int num){
int
i, mask = 1, mult = 1;
for
(i = 1; i <= 10; i++, mask <<= 1)
if
((num & mask) != 0){
mult
= 0;
break;
}
return
mult;
}
|
|