11.3.-
El desplazar a la izquierda un entero unsigned en 1 bit es equivalente
a multiplicar el valor por 2. Escriba la función power2 que
toma dos argumentos enteros number y pow y calcule
number
* 2^pow
Utilice
el operador de desplazamiento para calcular el resultado. El programa
deberá imprimir los valores como enteros y como bits.
11.4.-
El operador de desplazamiento a la izquierda puede ser utilizado
para empacar dos valores de caracteres en una variable entera no
signada de dos bytes.Escriba un programa que introduzca dos caracteres
del teclado y que los pase a la función packCharacters. Para
empacar dos caracteres en una variable entera unsigned, asigne el
primer caracter a la variable unsigned , desplace la variable a
la izquierda en ocho posiciones de bits, y combine la variable unsigned
con el segundo caracter utilizando el operador OR inclusivo a nivel
de bits. El programa deberá extraer los caracteres en su
formato de bits, antes y después de haber sido empacados
en el entero unsigned, para probar que los caracteres de hecho han
sido empacados correctamente en la variable unsigned.
11.5.-
Utilizando el operador de desplazamiento a la derecha , el operador
AND a nivel de bits y una máscara, escriba la función
unpackCharacters que toma el elemento unsigned del ejercicio 11.4
y lo desempaca en dos caracteres. Para desempacar dos caracteres
de un entero unsigned de 2 bytes, combine el entero unsigned con
la máscara65280 (11111111 00000000) y desplace hacia la derecha
el resultado en 8 bits. Asigne el valor resultante a una variable
char. A continuación combine el entero unsigned con la máscara
255 (00000000 11111111). Asigne el resultado a otra variable char.
El programa deberá imprimir el entero unsigned en bits, antes
de ser desempacado, y a continuación imprimir los caracteres
en bits para confirmar que fueron desempacados correctamente.
|