elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  ¿Posible la opereción con un resultado decimal? - Batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Posible la opereción con un resultado decimal? - Batch  (Leído 5,381 veces)
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
¿Posible la opereción con un resultado decimal? - Batch
« en: 4 Junio 2012, 19:38 pm »

Buenas a tod@s.

En batch:
Bueno, a ver... Me pregunto si hay la opción, cualquiera, de poder hacer cálculos con un resultado decimal.

Por ejemplo, imaginemos que quiero hacer con batch un generador de códigos binarios.
Como todos sabréis primero he de hacer la operación para saber si el código es 0 ó 1.
Para eso hay que dividir... y no siempre dará entero. Claro, el error esta ahí. Si batch no puede calcular números decimales.

¿Como hago en este caso para calcular 1?

No sé si me habre expresado suficientemente bien como para que me entendéis. Cualquier duda preguntad.

PD: Me sirve cualquier cosa, no solo comandos (en caso de que los haya) si no también alguna aplicación...

Saludos scripters de un lugar llamado mundo xD.  ;)

Puntoinfinito


« Última modificación: 5 Junio 2012, 18:11 pm por puntoinfinito » En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Bulone

Desconectado Desconectado

Mensajes: 16


Aquí dentro tengo paz pero hay fuera de dar guerra


Ver Perfil
Re: ¿Posible la opereción con un resultado decimal? - Batch
« Respuesta #1 en: 4 Junio 2012, 22:49 pm »

He tenido muchas veces el problema de los decimales, y al final siempre he conseguido  salir adelante multiplicando el numero que necesites calcular por 10, 100, 1000, etc, "tantos decimales como necesites"
Ej:


Código:
@echo off
rem queremos dividir 5 entre 3 y que nos de 3 decimales

set var=5
set /a var*=1000
set /a var/=3
set var=%var:~0,-3%,%var:~-3%
echo %var%
pause

No es que sea gran cosa, pero quizás te allude.


En línea

No existen los caminos equivocados puesto que en este viaje no puedes dejar de ir hacia donde vas
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: ¿Posible la opereción con un resultado decimal? - Batch
« Respuesta #2 en: 4 Junio 2012, 23:02 pm »

Gracias

Pero entonces, esto no sirve si queremos hacer realizar el ejemplo :/

No?
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Bulone

Desconectado Desconectado

Mensajes: 16


Aquí dentro tengo paz pero hay fuera de dar guerra


Ver Perfil
Re: ¿Posible la opereción con un resultado decimal? - Batch
« Respuesta #3 en: 4 Junio 2012, 23:03 pm »

No entiendo que me quieres decir.

El resultado del ejemplo anterior nos sacaría en pantalla:

Código:
1,666
En línea

No existen los caminos equivocados puesto que en este viaje no puedes dejar de ir hacia donde vas
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: ¿Posible la opereción con un resultado decimal? - Batch
« Respuesta #4 en: 4 Junio 2012, 23:06 pm »

Sí, eso si. Pero si queremos realizar un generador de códigos binarios (por ejemplo) poniendo tan solo una serie de números...

... Saludos
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: ¿Posible la opereción con un resultado decimal? - Batch
« Respuesta #5 en: 4 Junio 2012, 23:25 pm »

No sé nada de batch, pero en los lenguajes de programacion el operador " % " suele devolver el resto de la division, te pongo un pseudocódigo:

Código:
Inicio
Num = numero a pasar a binario
mientras(num>0):
bin = num%2
num = num/2

fin

donde bin sería cada dígito del numero binario y 2 la base (binario = base 2)

espero que sea lo que necesitas
En línea

BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: ¿Posible la opereción con un resultado decimal? - Batch
« Respuesta #6 en: 5 Junio 2012, 01:17 am »

Ahí tienes la función dectobin:
Código
  1. @echo off
  2. :: Batchiano para elhacker.net :)
  3. set decimal=%1
  4. set bin=2
  5. set "resultado="
  6. set "dectobin="
  7. :dectobin
  8. set /a r=%decimal%%%bin%
  9. set /a decimal=%decimal% / %bin%
  10. set resultado=%r%%resultado%
  11. if %decimal% GTR 0 (goto dectobin)
  12. set dectobin=%resultado%

Como se puede apreciar, los restos se colocan inversamente.
« Última modificación: 5 Junio 2012, 01:25 am por BatchianoISpyxolo » En línea

Puede que desees aprender a programar desde 0: www.espascal.es
overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: ¿Posible la opereción con un resultado decimal? - Batch
« Respuesta #7 en: 5 Junio 2012, 10:41 am »

No sé nada de batch, pero en los lenguajes de programacion el operador " % " suele devolver el resto de la division, te pongo un pseudocódigo:

Código:
Inicio
Num = numero a pasar a binario
mientras(num>0):
bin = num%2
num = num/2

fin

donde bin sería cada dígito del numero binario y 2 la base (binario = base 2)

espero que sea lo que necesitas

Te iba a decir lo mismo que ObliviOn pero como batch es tan raro que utiliza el operador módulo para tantas cosas he preferido no decirte nada por si te liabas más.

Pero para extraer el resto de las divisiones en la mayoría de los lenguajes de programación se utiliza este operador %
En línea

[/url]
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: ¿Posible la opereción con un resultado decimal? - Batch
« Respuesta #8 en: 5 Junio 2012, 21:52 pm »

Muchas gracias.
Creo que lo entendí :D

Saludos
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[batch] Funcion :H2D (convierte hexa a decimal)
Scripting
The Shadow 0 1,992 Último mensaje 18 Febrero 2008, 21:40 pm
por The Shadow
[Batch] Conversor de Decimal a Hexadecimal
Scripting
maxx93 0 3,088 Último mensaje 5 Agosto 2010, 06:08 am
por maxx93
[Batch] Conversor de Hexadecimal a Decimal
Scripting
maxx93 3 4,197 Último mensaje 6 Agosto 2010, 03:14 am
por Binary_Death
[Batch] Convertidor decimal a binarios y binarios a decimal bien simple
Scripting
bITEBUG 0 3,100 Último mensaje 15 Junio 2011, 06:13 am
por bITEBUG
De binario a decimal -> sprintf no da el resultado esperado (lenguaje c)
Programación C/C++
NOB2014 3 2,669 Último mensaje 11 Noviembre 2015, 16:20 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines