Shell   23-07-2023, 23:36
#1
Buenas!.

Si quiero convertir un número de binario a decimal, puedo hacerlo de esta forma:

Código:
'Binario -> Decimal
'Eso no es una cadena
Print &X11
'Nos devolvería 3

El problema que me encontraba es que quería usar los operadores lógicos con números binarios. Ejemplo:

Código:
Public Sub Ejemplo2()
 
 Print OperaAND("0011", "0110")
 Print
 Print OperaOR("0011", "0110")
 
End

Me tuve que apoyar en la función val. Convertir una cadena a número. Realizar un AND de dos números decimales y el resultado convertirlo a binario
En este caso solo necesité obtener cuatro dígitos.

Código:
''Realiza un AND de dos números binarios
Public Function OperaAND(numero1 As String, numero2 As String) As String
   
  Return Subst("&1 AND &2 = &3", numero1, numero2, Bin(Val("&X" & numero1) And Val("&X" & numero2), 4))
    
End

''Realiza un OR de dos números binarios
Public Function OperaOR(numero1 As String, numero2 As String) As String
 
  Return Subst("&1 OR &2 = &3", numero1, numero2, Bin(Val("&X" & numero1) Or Val("&X" & numero2), 4))
 
End

Resultado:
Cita: 
0011 AND 0110 = 0010

0011 OR 0110 = 0111

Saludos
Última modificación: 23-07-2023, 23:45 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
AlfredoSC   27-07-2023, 03:52
#2
(23-07-2023, 23:36)Shell escribió: convertir un número de binario

Luego de mirar tu post y analizar las funciones que presentas, tuve un momento de reflexión.

"Como es posible que algunos lenguajes de programación, no tengan como base numérica por default la representación binaria?

En mi caso, sería estupendo, pues muchas de mis programaciones son para interacción con puertos y sus bits (aunque ya es menos en la actualidad) y por lo tanto sería mas fácil enviar un 0x01011100 a cierto puerto o incluso localidad de memoria, pues habiendo calculado ese resultado mediante operadores lógicos AND, OR, NOR, XOR, uno como programador lleva la cuenta correcta de lo que se  quiere obtener.

Sería fabuloso que Gambas3 tuviera una instrucción como la siguiente:

Base4 (lo que sigue se representará en nibbles de 4 bits)
Base8 (lo que siguee se representará en bytes de 8 bits)
Base16 (idem de 16 bits)
Base32
Base 64
resultado = 0b01110011 AND 0x00000011
out puerto resultado

Hoy en día todo se calcula a decimal o hex, y es engorroso, tener que estar haciendo comentarios sobre el código, por ejemplo:

resultado = &H378     ' 0x0000-0011-0111-1000

Y finalmente: ¿Cómo es que una PC que solo entiende de 0 y 1, no le acercan un lenguaje que trabaje con esa numeración?. Claro, siempre se acude a funciones que pueden lograr esa actividad.

Saludos.

Es mejor saber un poco de todo, que todo de muy poco. Lo primero, garantiza la supervivencia humana.
Shordi   27-07-2023, 09:23
#3
Cita:¿Cómo es que una PC que solo entiende de 0 y 1, no le acercan un lenguaje que trabaje con esa numeración?
Porque no se trata de que lo entienda el PC, se trata de que lo entendamos nosotros y... ¿no te has enterado?: https://www.larazon.es/cultura/somos-cad...7ce4d.html
Big Grin Big Grin
Última modificación: 27-07-2023, 09:26 por Shordi.

No podemos regresar
Shell   27-07-2023, 13:06
#4
(27-07-2023, 03:52)AlfredoSC escribió: "Como es posible que algunos lenguajes de programación, no tengan como base numérica por default la representación binaria?

Era lo que esperaba. Sobre todo si se trabaja con binario. Trabajar directamente con el.
Tuve que trabajar con cadenas, un rollo.

En cuanto a la base en Gambas, tenemos decimal, hexa, binaria y octal.
 
(27-07-2023, 03:52)AlfredoSC escribió: Hoy en día todo se calcula a decimal o hex, y es engorroso, tener que estar haciendo comentarios sobre el código, por ejemplo:

No debería ser así. Buscas ejemplos y ves más base decimal y el resultado en decimal.

Esto me recuerda un poco cuando trabajamos con ángulos.  El uso de grados y no de radianes.
Como hago "cosillas" con gráficos y sobre todo cuando tengo que trabajar con radios, circunferencias.

Tenemos funciones de manipulaciones de bit. Pero para esto ya te tiene que gustar el tema.
"Aunque" hay cosas muy curiosas que hasta para dibujo, encuentras binario. Rolleyes
Se apoyan en el. Dividir un plano en sectores y a cada sector se le asigna un número binario.

Manipulación de bits en Gambas

Y vuelta a usar decimal. Como no uses una conversión por medio.
 
Cita: 
Porque no se trata de que lo entienda el PC, se trata de que lo entendamos nosotros y... ¿no te has enterado?

Big Grin

Ahora me vas a decir que no entiendes binario. Confused




Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   27-07-2023, 13:17
#5
Hay 10 tipos de humanos, los que entienden binario y los que no...

No podemos regresar
Shell   27-07-2023, 23:59
#6
(27-07-2023, 13:17)Shordi escribió: Hay 10 tipos de humanos, los que entienden binario y los que no...

Aproximadamente somos unos 8.000.000.000 de seres humanos en el planeta molestándonos unos a los otros,
eso hace un total de ..que , pues si, si que hay gente que conoce binario.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
AlfredoSC   28-07-2023, 05:36
#7
(27-07-2023, 13:06)Shell escribió: Sobre todo si se trabaja con binario.

Allá por 1979, cuando cursaba los últimos semestres de la Univesidad, y dado que mi elección fue la ingeniería electrónica, recibíamos cátedra de Electrónica Digital I, II, III y IV, por lo que pronto los estudiantes nos veíamos inmersos en puros 0's y 1's por fuerza.

Nos causaba hilaridad que algunos compañeros asumían que la cátedra no se denominaba Electrónica X, sino "Palitos y bolitas IV" por ejemplo, como si fuésemos estudiantes de un jardín de niños.

No obstante eso, nuestra mente se acostumbró a "hablar" en binario, pues recordemos que en ésas épocas reinaba el basic, el fortran, pascal y otros lenguajes que tenían mucho de nativo y de matemáticos. Incluso hacíamos programas en Assembler o el ensamblador del 8080, Z80, 8088, de los cuales, luego de 45 años aún conservo los libros.

Es cierto, la tecnología tal como está ahora, nos permite "no pensar". Incluso no tenemos necesidad de levantarnos de nuestro húmedo sillón para cambiar el canal de la TV, la cual se frecuenta cada vez menos, a no sea que la utilicemos para conciliar el sueño a altas horas de la noche.

Y si, ya no queremos hacer una suma o resta mental. Hasta para la más fácil, abrimos la calculadora del smartphone o de la PC. Y si se trata de hacer cálculos en HEX y Binario, pues es imprescindible tal calculador.

No cabe la menor duda: La IA nos va a dejar como verdaderos "paletos".

Saludos.

Es mejor saber un poco de todo, que todo de muy poco. Lo primero, garantiza la supervivencia humana.
vuott   28-07-2023, 17:43
#8
(27-07-2023, 13:17)Shordi escribió: Hay 10 tipos de humanos, los que entienden binario y los que no...

Los que no conocen el binario, conocen el tipo Hsex... Angel

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
Shell   28-07-2023, 18:42
#9
(28-07-2023, 17:43)vuott escribió: Los que no conocen el binario, conocen el tipo Hsex

Esto, ¿ qué es eso del H...sex ?. Rolleyes.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.