Ayuda, cómo convertir números de decimal a binario

398 views
Skip to first unread message

Hitiel Hernández

unread,
Nov 18, 2012, 10:00:56 AM11/18/12
to publice...@googlegroups.com
Buen día compañeros,
resulta que tengo que hacer en una parte de mi aplicación la conversión de números decimales 
a binarios, pero no tengo la idea de cómo se hace.
Agradeceré mucho la ayuda que me puedan dar.

Saludos 1

--
Sabiduría ante todo; adquiere sabiduría

wpalomo

unread,
Nov 18, 2012, 10:24:33 AM11/18/12
to publice...@googlegroups.com

Hitiel Hernández

unread,
Nov 18, 2012, 10:37:41 AM11/18/12
to publice...@googlegroups.com
Gracias wpalomo por tu pronta respuesta.

El asunto es que no encontré el código y si necesito el código.




--
 
 
 

mapner

unread,
Nov 18, 2012, 11:08:35 AM11/18/12
to publice...@googlegroups.com
http://www.tek-tips.com/faqs.cfm?fid=4461

Funciones de conversión en VFP

Saludos

Hitiel Hernández

unread,
Nov 18, 2012, 11:19:41 AM11/18/12
to publice...@googlegroups.com
excelente, muchas gracias

2012/11/18 mapner <mpis...@gmail.com>
http://www.tek-tips.com/faqs.cfm?fid=4461

Funciones de conversión en VFP

Saludos

--



Walter R. Ojeda Valiente

unread,
Nov 18, 2012, 12:21:03 PM11/18/12
to publice...@googlegroups.com
Es muy fácil, sencillísimo, si sabes como funcionan los números binarios. Todo se reduce a ir hallando los restos de la división por 2 y luego mostrar esos restos en el orden inverso al que fueron hallados. Si necesitas números octales (base 8) entonces en lugar de 2 deberías usar 8 en los cálculos. Si necesitas números hexadecimales (base 16) entonces en lugar de 2 deberías usar 16 en los cálculos. La lógica es siempre la misma, lo único que cambia es la base.

Te hice un pequeño programita para mostrarlo, pero lo hice más general, para que muestre no solamente números binarios sino también octales y hexadecimales. Así te resultará más útil.

CLEAR

For lnI = 1 to 3
  lnBase = icase(lnI == 1, 2, lnI == 2, 8, 16)
  ? icase(lnBase == 2, "BINARIO", lnBase == 8, "OCTAL", "HEXADECIMAL")
  ? "----------------------"
  ? DECIMAL_A_OTRA_BASE(  6, lnBase)
  ? DECIMAL_A_OTRA_BASE( 12, lnBase)
  ? DECIMAL_A_OTRA_BASE( 15, lnBase)
  ? DECIMAL_A_OTRA_BASE( 25, lnBase)
  ? DECIMAL_A_OTRA_BASE( 40, lnBase)
  ? DECIMAL_A_OTRA_BASE( 50, lnBase)
  ? DECIMAL_A_OTRA_BASE( 65, lnBase)
  ? DECIMAL_A_OTRA_BASE(100, lnBase)
  ? DECIMAL_A_OTRA_BASE(128, lnBase)
  ? DECIMAL_A_OTRA_BASE(200, lnBase)
  ?
Next lnI

RETURN
*
*
FUNCTION DECIMAL_A_OTRA_BASE
LParameters tnNumDec, tnBase
Local lnCociente, lnResto, lcDigito, lcResultado
 
  tnNumDec    = Abs(Int(tnNumDec))
  tnBase      = iif(VarType(tnBase) <> "N", 2, tnBase)
  lcResultado = ""
 
  if !InList(tnBase, 2, 8, 16)
    Return("***")
  endif
 
  lnCociente = Int(tnNumDec / tnBase)
  lnResto    = Mod(tnNumDec, tnBase)
  tnNumDec   = lnCociente
 
  do while tnNumDec > 0
    lcDigito    = iif(tnBase == 2 .or. tnBase == 8 .or. lnResto <= 9, Transform(lnResto), CHR(55 + lnResto))
    lcResultado = lcDigito + lcResultado
    lnCociente  = Int(tnNumDec / tnBase)
    lnResto     = Mod(tnNumDec, tnBase)
    tnNumDec    = lnCociente
  enddo
 
  lcDigito    = iif(tnBase == 2 .or. tnBase == 8 .or. lnResto <= 9, Transform(lnResto), CHR(55 + lnResto)) 
  lcResultado = lcDigito + lcResultado
 
Return(lcResultado)
*
*

Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Sun, 18 Nov 2012 09:00:56 -0600
Subject: [vfp] Ayuda, cómo convertir números de decimal a binario
From: hiti...@gmail.com
To: publice...@googlegroups.com
--
 
 
 

Luis Maria Guayan

unread,
Nov 18, 2012, 12:37:02 PM11/18/12
to publice...@googlegroups.com
-- Convertir de decimal a binario --
http://goo.gl/TuKSk

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 
 

wpalomo

unread,
Nov 18, 2012, 2:28:28 PM11/18/12
to publice...@googlegroups.com

Saludos

Entonces, este codigo es lo que buscas


? aBinario(32)


Function aBinario
Parameters xValor
xBin = ""
Do While xValor > 0
    xRes = Mod(xValor,2)
    xBin = Str(xRes,1,0) + xBin
    xValor = Int(xValor/2)
Enddo
Return xBin

Hitiel Hernández

unread,
Nov 19, 2012, 9:22:12 PM11/19/12
to publice...@googlegroups.com
muchísimas gracias compañeros
excelentes aportaciones
ya empecé a comprobarlos




--
 
 
 
Reply all
Reply to author
Forward
0 new messages