MANEJO DE BITS

Anuncio
MANEJO DE BITS
Lenguajes de programación LPSI EUI UPM
OPERADORES
• Operan bit a bit
• Las operaciones a nivel de bit son dependientes
de la máquina
• Operador & (AND lógico de bits)
204 & 121 -> 72
11001100
& 01111001
0100 1000
Lenguajes de programación LPSI EUI UPM
OPERADORES
• Operador
| (OR lógico de bits):
204 & 121 -> 253
11001100
| 01111001
11111101
Lenguajes de programación LPSI EUI UPM
OPERADORES
• Operador ^ (OR exclusivo de bits):
204 ^ 121 -> 181
11001100
^ 01111001
10 110101
Lenguajes de programación LPSI EUI UPM
OPERADORES
• Operador ~
(ALT+126)
~ 204 -> 51
~ 11001100
(complemento a 1):
-> 0 0 1 1 0 0 1 1
Lenguajes de programación LPSI EUI UPM
OPERADORES
• Operador >> (desplazamiento a la dcha):
V >> n
desplaza V n bits a la dcha,
rellenando con ceros por la
izda
204 >> 3 -> 25
1 1 0 0 1 1 0 0 >> 3 -> 0 0 0 1 1 0 0 1
Lenguajes de programación LPSI EUI UPM
OPERADORES
• Operador << (desplazamiento a la izda):
V << n
desplaza V n bits a la izda,
rellenando con ceros por la
dcha
204 << 3 -> 96
1 1 0 0 1 1 0 0 << 3 -> 0 1 1 0 0 0 0 0
Lenguajes de programación LPSI EUI UPM
OPERADORES
• Asignaciones:
&=
|=
^=
>>=
<<=
a &= b
a |= b
a ^= b
a >>= b
a <<= b
Æ
Æ
Æ
Æ
Æ
a=a&b
a=a|b
a=a^b
a = a >> b
a = a << b
Lenguajes de programación LPSI EUI UPM
operador
asociatividad
() [ ] . ->
! ++ -- - (tipo) sizeof & * ~
* / %
+ << >>
< <= > >=
== !=
&
^
|
&&
||
?:
i–d
d–i
i–d
i–d
i–d
i–d
i–d
i–d
i–d
i–d
i–d
i–d
d–i
= += -= *= /= %= &= |= ^= <<= >>= d – i
Lenguajes de programación LPSI EUI UPM
EJERCICIOS
• Escribir una función que, pasándole un
carácter, imprima la representación binaria del
mismo.
• Escribir una función que, recibiendo como
parámetro un entero sin signo, devuelva como
resultado un entero resultante de cambiar los
bits al pasado como parámetro.
• Escribir una función que, pasándole un entero
sin signo, le cambie los bits y, además, lo
devuelva como resultado.
Lenguajes de programación LPSI EUI UPM
EJERCICIOS
• Escribir una función que, recibiendo como
parámetros un array de enteros y la
dimensión del array, devuelva como
resultado el número total de bits a 1 que
hay en el array.
• Escribir una función que, pasándole como
parámetro un array de n cadenas de
caracteres (n se pasa como parámetro
también), devuelva la cadena con mayor
número de bits a 1.
Lenguajes de programación LPSI EUI UPM
EJERCICIOS
• Escribir una función que, recibiendo
como parámetro un entero long,
devuelva otro long resultante de copiar
los bits que ocupan posiciones impares
del número pasado como parámetro y
poner a cero los bits pares.
Lenguajes de programación LPSI EUI UPM
EJERCICIOS
• Escribir una función que, recibiendo como
parámetros dos cadenas de caracteres,
devuelva un número negativo, positivo o
cero, en función de que la primera cadena
tenga menos, más o igual número de bits
a 0 que la segunda.
• Escribir un programa que lea un número
entero y un valor n, entre 2 y 10, ponga a
cero los n bits centrales del número leído
y muestre el resultado por pantalla.
Lenguajes de programación LPSI EUI UPM
EJERCICIOS
• Escribir una función que, recibiendo dos
números enteros, intercambie entre sí los
8 bits de mayor peso del primero con los 8
bits de menor peso del segundo.
• Escribir una función que recibiendo como
parámetro un long double, devuelva a
partir de él una cadena de caracteres
resultante de convertir cada byte del
número en un carácter de la cadena,
empezando por los de menor peso.
Lenguajes de programación LPSI EUI UPM
Descargar