Operadores de desplazamiento de bits | | UPV

Поділитися
Вставка
  • Опубліковано 15 жов 2024

КОМЕНТАРІ • 30

  • @cristobalulloa4192
    @cristobalulloa4192 4 роки тому +4

    Uno de los mejores videos si de explicación se trata!, informatica con todos los metodos de enseñanza disponibles, desde 0 y llegando a la aplicación, muchas gracias!

  • @montectronyxz
    @montectronyxz 3 роки тому

    Excelente. Gracias por la explicación

  • @eduardoalvarez8540
    @eduardoalvarez8540 2 роки тому

    Buen dia Antonio, excelente la explicacion! Una consulta, de un dispositivo sale dos bits digitales, un bit es un clock y el otro emite un pulso tres veces mayor que el clock y acto seguido hace 256 pulsos iguales al clock, despues vuelve a hacer un pulso prolongado y vuelve a hacer 256 pulsos, por lo que entiendo esos pulsos son 16 palabras (16 bits x 16 palabras = 256 bits), como haria para "desglosar" esas 16 palabras e interpretar en valores enteros los datos que transmiten esos bits? muchas gracias de antemano!!! El lenguaje a usar seria pyton.

    • @UPV
      @UPV  2 роки тому

      El profesor responde:
      "Hola Eduardo, gracias por tus palabras. Con la información que das es muy difícil saber la codificación de esos datos, si son palabras de 8 bits o de 16, si se envía primero el bit de menor peso o el de mayor peso. Si son enteros de 16 bits o más, también habría que saber si se envía primero el byte de menor peso o el de mayor. Por otro lado habría que saber si se trata de un protocolo de comunicaciones estándar para poder interpretar la señal de datos. Resumiendo, tienes un problema interesante pero no sencillo de resolver. Si quieres, mándame un correo a amartiATdisca.upv.es y me cuentas más detalles. Un saludo."

    • @eduardoalvarez8540
      @eduardoalvarez8540 2 роки тому

      @@UPV Excelnte profe!, no puedo enviar el correo a la direccion que me indica sale un error. Pero es como usted dice son enteros de 16 bits y primero envia el bit de menor peso, los datos que envia son numeros enteros, muchas gracias nuevamente!! Para dar un ejemplo seria algo asi...
      Bit_largo (1,5 seg) acto seguido un tren de pulsos de 256 bits cada 0,5 seg siempre en paralelo con el clock despues otro Bit_largo de 1,5 y nuevamente el tren de pulsos 256 bits y asi eternamente...

  • @joejohanchavezlope2588
    @joejohanchavezlope2588 3 роки тому

    Excelente video!! Claro y preciso. Gracias

  • @gersonmartinlipanoriega7742
    @gersonmartinlipanoriega7742 3 роки тому

    Excelente explicación. Gracias

  • @Alfonso_javier13
    @Alfonso_javier13 2 роки тому

    Gracias por el video esta muy bien explicado!

  • @alexissuarezalvarez5622
    @alexissuarezalvarez5622 4 роки тому

    Hola muchas gracias por la explicación la necesitaba, una pregunta se puede convertir un numero a binario utilizando desplazamientos y operadores AND,OR,XOR ?

    • @UPV
      @UPV  4 роки тому

      El profesor responde:
      "Hola Alexis, no puedo responder con exactitud a tu pregunta ya que me falta detalle para saber qué es lo que quieres hacer exactamente. ¿En qué base o formato está el número que quieres convertir a binario? ¿En qué formato quieres el resultado binario (variable entera, string, mostrar cada bit por separado en pantalla...? ¿Qué lenguaje de programación quieres usar?
      Un saludo."

  • @mirtz5762
    @mirtz5762 4 роки тому

    Que maravilla de video, excelente muchas gracias

  • @yotch7513
    @yotch7513 3 роки тому

    lo amo don, cásese conmigo y hágame lo que quiera

  • @Galactic.Fornex
    @Galactic.Fornex 4 роки тому

    Muchas gracias! me vino de maravilla

  • @pablomolinaro2585
    @pablomolinaro2585 3 роки тому

    Hola, muy bueno el video. Pero en el ejercicio que pone al final pone 0x01

    • @UPV
      @UPV  3 роки тому +2

      El profesor responde: "Hola Pablo, gracias por tu comentario.
      Cuando preparé los ejemplo yo estaba pensando en una variable de 8 bits, por eso uso 0x01.
      Pero en realidad 0x01 es equivalente a 0x0001 y también a 1. Cualquier constante que no tenga explicitado el tipo utiliza los mismos bits que un int (que depende de la arquitectura del procesador que estés utilizando).
      Es una costumbre utilizar 0x01 o 0x0001 para que cuando lees el código veas claramente el tamaño de la variable a la que estás aplicando la máscara o el desplazamiento. Pero no es obligatorio.
      Recuerda que puedes declarar constantes más grandes usando el cast, por ejemplo (uint32_t)0x00000001.
      Espero que mi respuesta te haya sido útil.
      Saludos."

  • @igort5418
    @igort5418 16 днів тому

    Pregunta estúpida, ¿ para que quieres comprobar que bit esta a 1 en una variable si puedes convertir la variable que buscas en decimal y comprobarlo con un == ?

    • @UPV
      @UPV  14 днів тому +1

      El profesor responde: "Hola Igort. Ninguna pregunta es estúpida si somos conscientes de que nadie lo sabe todo. Los operadores bitwise se utilizan en sistemas empotrados, donde es habitual que una variable represente el estado de varios sensores. Por ejemplo, tienes una casa con ocho habitaciones, y cada habitación con un sensor que te dice si hay un incendio (1) o no (0) en esa habitación. Si conectas los ocho sensores a un computador, podrás leer el estado de los ocho sensores como un byte, donde cada bit representa una habitación. Así, si la variable es cero, sabes que no hay ningún incendio. Si la variable vale 1, sabe que la primera habitación está en llamas, pero las otras no. Pero, y aquí viene lo interesante, si la variable vale 3, o 5, o 7, o cualquier valor impar, te está diciendo que en la primera habitación hay un incendio, y también en otras habitaciones, pero no en todas. Si utilizas el valor decimal de la variable para saber si en la primera habitación hay fuego, deberías escribir un if con 128 comparaciones ==, para comprobar cada uno de los 128 valores que tienen un 1 en el bit de menor peso. Por eso necesito saber que bits están a 1 y cuáles no, para activar solo la extinción en las habitaciones donde detecto un incendio. Ah, y para activar los extintores, también necesito poner algunos bits a 1 dejar otros a 0, por lo que también utilizaré operadores bitwise para hacerlo. Espero que mi respuesta te sea útil. Un saludo."

  • @SnikeProXP
    @SnikeProXP 4 роки тому

    Muchas Gracias por el Video, muy bien explicado

  • @jeysonramos1418
    @jeysonramos1418 5 років тому

    gracias por el video maestro.!

  • @cristianandresvargasgonzal4510
    @cristianandresvargasgonzal4510 5 років тому +1

    Muchas gracias por el video :D

  • @AnglasMechatronics
    @AnglasMechatronics 4 роки тому

    Muy bien explicado

  • @cristiansoto1284
    @cristiansoto1284 4 роки тому

    0x01 seria lo mismo que poner 1u ?

    • @UPV
      @UPV  3 роки тому

      El profesor responde:
      "Hola Cristian. Sí, sería lo mismo. Saludos"

  • @arielmalvaso
    @arielmalvaso 4 роки тому +2

    Buen video, pero su explicación marea un poco. Por ejemplo, a veces lee los números binarios de izquierda a derecha y otras veces al revés. Otra cosa es que escribe los números de una forma poco clara: ¿Por qué escribir "0x01" si directamente puedo escribir "1"? Y otro error sería en el minuto 7:35, pues el comentario hecho en la penúltima línea es erróneo (lo correcto sería que el bit q vale 0)

    • @mauro__col
      @mauro__col 4 роки тому

      Una pregunta, qué es 0xa3b5¡? qué pena la molestia.

    • @arielmalvaso
      @arielmalvaso 4 роки тому +1

      @@mauro__col Es un número escrito en hexadecimal. El prefijo “0x” significa que lo que estás a punto de escribir es un número en hexadecimal, y el “a3b5” es el número propiamente dicho, que en decimal sería 41909

    • @mauro__col
      @mauro__col 4 роки тому +1

      @@arielmalvaso Muchas gracias, no tenía eso claro

  • @eduardoalvarez8540
    @eduardoalvarez8540 2 роки тому

    O Arduino! Muchas gracias!!!

    • @UPV
      @UPV  2 роки тому

      El profesor responde:
      "Hola Eduardo. Cambia AT por @ y la dirección será correcta. Saludos."

  • @Jarito1903
    @Jarito1903 3 роки тому

    not bad