Haz una pregunta
  Foros de Electrónica » Temas de Interés » Dudas en general
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

06/03/2013 #1


Definir 4 bits bajos o altos
Hola,

una pregunta, supongo que muy básica, pero no he encontrado respuesta.
Como puedo hacer que esta instrucción por ejemplo solo sea para los 4 bits bajos del byte en c+, sin cambiar el valor que haya en los 4 bits altos?

#define DON 0b00001111 // megustaria que fuese 0b????1111

seria hacerlo en octal así? #define DON 17

---------- Actualizado después de 5 minutos ----------

ups, creo que ya lo encontré, justo ese define de 0b00001111 hace que solo use los 4 bajos, verdad?
06/03/2013 #2

Avatar de chclau

Podes hacerlo de varias maneras, una es usando una mascara como vos pusiste, pero no alcanza con definir la mascara.

Supongamos que tu dato original esta en una variable orig, la mascara en mask y los bit nuevos que queres escribir en la variable bitnuevos, el comando seria:

orig = (orig & ~mask) | (bitnuevos & mask);
06/03/2013 #3


Gracias chclau.

---------- Actualizado después de 41 minutos ----------

Hola,

como introduzco este signo en el c18 compiler? he hecho un copy-paste y me da error de sintaxis.
que otras maneras hay para hacer esta operación? me extraña que no haya una función directa siendo algo que creo usual.
Gracias.
06/03/2013 #4

Avatar de chclau

No se ve a que signo te refieres peromsupongo que es este ~. No creo que el compilador no lo soporte, es una funcion basica de C, bitwise NOT.
06/03/2013 #5

Avatar de Gudino Roberto duberlin

Amigo bueno, puedes copiar el dato en otra direccion, para no perder el nibble que no usemos. Luego desplaza a la derecha o a la izquierda 4 lugares.
07/03/2013 #6


Hola chclau,
ya encontré el problema en mi configuración, tu instrucción funciona a la perfección.
Gracias.
07/03/2013 #7

Avatar de chclau

No hay por que

Me alegro que te haya sido util
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Dudas en general

Aquí se tratan todos los temas relacionados con la electrónica en general.

Cerrar
Foros de Electrónica » Temas de Interés » Dudas en general

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.