TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: badtzdizzy en 08 de Junio de 2004, 19:08:00
-
Hola
Quisiera saber si existe alguna funcion que me ayude a obtener el bit más significativo y el menos significativo de un byte, por ejemplo, yo quiero obtener estos bits del numero 255. De antemano gracias por la informacion.
-
boolean msb,lsb;
msb=bit_test(variavel,7);
lsb=bit_test(variavel,0);
-
Entonces si yo quiero obtener esos bits de un numero menor, tengo que ejecutar una función diferente para cada una de las posiciones ? O existe alguna otra forma de hacerlo. Yo quiero obtener esos bits en un rango de valores de 0 a 255. De antemano gracias.
-
Esta cuentecilla vale para sacar el número de bits significativos de una variable,tenga la longitud que tenga:
Log2(variable) = nº bits
Lo que no sé es si el ccs implementa logaritmos en base 2.
Supongo que si la trae implementada devolverá un real en la mayoría de los casos por lo que después tendrías que redondear hacia el menor entero más cercano.
Un saludo
-
ENTENDI QUE VOCE QUERIA O BIT MAIS SIGNIFICATIVO E O MENOS SIGNIFICATIVOS DE UM NUMERO DE 8 BITS(0 A 255),PARA OUTRA POSIÇÃO É SÓ TROCAR O "n" ABAIXO:
boolean msb,lsb;
msb=bit_test(variavel,n);
lsb=bit_test(variavel,n);
NÃO ENTENDI SUA FUNÇÃO MODULAY,QUANTO AO LOG SERIA ASSIM:
Nº BITS=LOG10 VARIAVEL/LOG10 2
-
Mejor la opción de Ginho.Hace lo mismo que la q yo propuse,pero ccs la puede calcular sin problemas,cosa que no ocurre con logaritmos de base 2.Pero esta vez el redondeo hay que realizarlo hacia arriba,hacia el entero mayor más cercano.
Ginho,es fácil de entender,nos remitimos a la base en la que se trabaja,la binaria:
variable = 2^nº bits => log2(variable) = log2(2) * nº bits
=> log2(variable) = 1 * nº bits
-
Hola a todos
Pues ya revisando bien el programa tal vez me esté complicando las cosas, lo que yo necesito es obtener un dato y enviarlo al visual para graficarlo, ahora bien, yo les pregunté acerca de como se obtenían los bits mas y menos significativos para que al recibirlos en el visual pues yo los transformara en entero y así graficarlos.
Es mas, no se que tan factible sea que los mande con la función printf y no con putc que es la que estoy usando. De antemano gracias por la ayuda.