Hola chicos, hay una forma de quitarle los ceros a un numero binario, por ejemplo, 0100101 sin los ceros seria 111, hay un código que me permita hacer esa operación, ya me quebré la cabeza.
Te van a "tirar de la oreja" por abrir otro tema con algo que es continuidad del que ya tenés abierto.
A ver, si con el código que te pasé antes sabes cuantos 1's tiene el número, ya lo tienes resuelto, imprime (o arma una cadena con) tantos 1's como has calculado y asunto resuelto.
es que la verdad no soy bueno para los códigos, solo es una materia optativa donde me piden estos trabajos, el codigo que hiciste solo cuenta las casillas no? si lo volví hacer y me quedo así, pero no se por donde empezar para ponerle fin a mi problema, agradezco su ayuda.
const int sensorPin= A0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int value = analogRead(sensorPin);
int millivolts = (value / 1023.0) * 5000;
int celsius = millivolts / 10;
Serial.print(celsius);
Serial.println(" C");
int num =celsius;
uint8_t bitsCount = sizeof( num ) * 8;
char str[ bitsCount + 1 ];
itoa( num, str, 2 );
Serial.println("numero en binario es:");
Serial.println( str );
int convercion= int(str);
int unos = 0;
for(int i = 0; i < 16; i++)
{
unos += (convercion >> i) & 0x0001;
}
Serial.println("la suma de los 1 es:");
Serial.println(unos);
delay(1000);
}
String soloUnos = "";
if(unos > 0) {
for(int i = 1; i <= unos; i++) {
soloUnos += "1";
}
Serial.println(soloUnos);
}
else {
// lo que quieras imprimir cuando NO hay unos (solo para 0°)
}
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.