Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > ASM y Microcontroladores
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Representacion numerica

Hola amigos: Me canse de buscar pero no encuentro como representar numeros binarios en delphi.

Aca tengo las formas de representaciones mas comunes en delphi:

Decimal: se escribe como siempre.
Hexadecimal: se cola el signo $ delante. Ejemplo: $0f, $1A...
caracter: se coloca una ' antes y despues ' ejemplo 'a'

me faltan la octal y la binaria. Es que cuando se quiere hacer programas para micros esta es una forma muy practica de trabajar. Les agradesco su colaboracion
Responder Con Cita
  #2  
Antiguo 16-10-2008
MasterXP MasterXP is offline
Miembro
 
Registrado: ene 2005
Posts: 193
Poder: 20
MasterXP Va por buen camino
No entiendo bien tu pregunta, no te bastaria con convertir de Decimal(o cualquier otra base) a Binario y asi con los octales y demas.

Podrias dar mas detalle.
Responder Con Cita
  #3  
Antiguo 16-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Hola

Tal vez estoy pecando de ingenuo, pero pienso que al final lo que se transmite son caracteres, es decir, no importa si el valor es hexadecimal, octal, decimal e incluso en fomato HTML.

Es decir, es lo mismo enviar 65 decimal que 41 hexadecimal que 101 octal que & #65; HTML al final lo que estas enviando es el caracter 'A'.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 16-10-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 17
TOPX Va camino a la fama
Hola,

Ahora yo, con mi interpretación de la cuestión; que espero no estar enredando las cosas.

Pues, ya que este hilo está en "ASM y Microcontroladores", es posible que trate de Assembler "en línea" y que lo que busque esté aquí.
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #5  
Antiguo 16-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por mario2000 Ver Mensaje
Hola amigos: Me canse de buscar pero no encuentro como representar numeros binarios en delphi.

Aca tengo las formas de representaciones mas comunes en delphi:

Decimal: se escribe como siempre.
Hexadecimal: se cola el signo $ delante. Ejemplo: $0f, $1A...
caracter: se coloca una ' antes y despues ' ejemplo 'a'

me faltan la octal y la binaria. Es que cuando se quiere hacer programas para micros esta es una forma muy practica de trabajar. Les agradesco su colaboracion
¿Sera esto lo que quieres? 00110010b Puede que lo que quieres es convertir esto 3 en esto 00000011b .


Como dices la reprecentacion por eso pence en la primera: 00110010b lo he encontrado en codigo Pascal.

Código Delphi [-]
function IntToBin ( value: LongInt; digits: integer ): string;
begin
    result := StringOfChar ( '0', digits ) ;
    while value > 0 do begin
      if ( value and 1 ) = 1 then
        result [ digits ] := '1';
      dec ( digits ) ;
      value := value shr 1;
    end;
end;

function BinToInt(Value: String): LongInt;
var i: Integer;
begin
  Result:=0;
//remove leading zeroes
  while Copy(Value,1,1)='0' do
   Value:=Copy(Value,2,Length(Value)-1) ;
//do the conversion
  for i:=Length(Value) downto 1 do
   if Copy(Value,i,1)='1' then
    Result:=Result+(1 shl (Length(Value)-i)) ;
end;



Un Saludo.

Última edición por JoseFco fecha: 16-10-2008 a las 20:24:57.
Responder Con Cita
  #6  
Antiguo 16-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por TOPX Ver Mensaje
Hola,

Ahora yo, con mi interpretación de la cuestión; que espero no estar enredando las cosas.

Pues, ya que este hilo está en "ASM y Microcontroladores", es posible que trate de Assembler "en línea" y que lo que busque esté aquí.
Pues como digo, tal vez me equivoque con el requerimiento de mario2000, pero esto funciona en delphi con ASM.

Código Delphi [-]
procedure WritePort(Port: word; Value: byte);
asm
 push word ptr Port
 mov al, Value
 pop dx
 out dx, al
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WritePort(1016,ord('A'));
  WritePort(1016,65);
  WritePort($3F8,65);
  WritePort($3F8,$41);
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 16-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Hola amigos gracias por sus respuestas, acerca de la representacion numerica en delphi lo que quiero es hacer esto:

Por ejemplo si tengo una variable asi:

var
dat:byte;
begin
dat:=$0f;
end;

con representacion binaria quedaria si fuese con el signo digamos % como en mikropascal claro pero en delphi asi :
var
dat:byte;
begin
dat:=%00001111;
end;

asi si por ejemplo quiero cambiar un bit solo tengo que cambiar el bit sin preocupaciones de esta manera digamos que es el bit 2 de 1 a 0 asi:

var
dat:byte;
begin
dat:=%00001011;
end;

ya me entienden es por comodidad ya que estoy trabajando con puertos y nesesito que la cosa no se me complique

Gracias por vuestros comentarios espero que ahora si puedan alludarme
Responder Con Cita
  #8  
Antiguo 17-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por mario2000 Ver Mensaje
Hola amigos gracias por sus respuestas, acerca de la representacion numerica en delphi lo que quiero es hacer esto:

Por ejemplo si tengo una variable asi:

var
dat:byte;
begin
dat:=$0f;
end;

con representacion binaria quedaria si fuese con el signo digamos % como en mikropascal claro pero en delphi asi :
var
dat:byte;
begin
dat:=%00001111;
end;

asi si por ejemplo quiero cambiar un bit solo tengo que cambiar el bit sin preocupaciones de esta manera digamos que es el bit 2 de 1 a 0 asi:

var
dat:byte;
begin
dat:=%00001011;
end;

ya me entienden es por comodidad ya que estoy trabajando con puertos y nesesito que la cosa no se me complique

Gracias por vuestros comentarios espero que ahora si puedan alludarme
Hola Mario.
Estas trabajando con puertos y no te quieres complicar.Una pregunta ¿tu lo que quieres es a la hora de programar poder visualizar los pines del puerto?
¿Es por eso que quieres ponerlos en binario?

Un Saludo.
Responder Con Cita
  #9  
Antiguo 17-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola Mario.

No se porque llamas complicarte trabajar con hex.

La metrica es muy simple y un programador de micros debe dominarla sin mucho problema:

Binarios: 0 0 0 0 1 0 1 0 b

Decimal: 10

Hex: 0A

Si partimos de binarios : 00001010b los separamos en dos grupos de 4 tenemos 0 0 0 0 1 0 1 0 b

sus valores decimal son 128 64 32 16 8 4 2 1 es lo que valen

estos bits su suma total = 255 Dec

Los Hex son los mas nobles de todos: son dos caracteres 0A en el caso del ejemplo 00001010 Bin > 10 Dec > 0A Hex

Separamos los hex en dos 0 A cada uno de ellos tiene 4 bits 1010b

0 0 0 0 estos son los menos significativos bits de un byte su valor minimo "0" su valor maximo 15 si los tenemos todos a 1 1 1 1 = 15 dec = A hex

solo son 16 a memorizar y si nos fijamos en elgo el bit 0 solo estara a 1 si el numero es none (impar) nunca estara seteando en los numeros pares.

porque decimos que 1 0 1 0 = 10 dec y A hex muy facil solo estan dos de los 4 bits seteados a 1 el que vale 8 y el que vale 2 , 8+2=10 dec despues del 9 en hex tenemos la A .

A = 10
B = 11
C = 12
D = 13
E = 14
F = 15

Un hex como decia esta compuesto por dos caracteres "0A"

si los miras asi 5AH los separas en tu mente y dices 5 tiene el primero seteado porque impar ya sabes que tienes el primero "1" uno mas 4 es 5 bingo! 0 1 0 1 tienes los 4 mas significativos bit del byte.
entonces tenemos A que es 10 dec el primero no estara seteado porque es pare. entonces tenemos que 8 y 2 son 10=Ah 1 0 1 0 bingo!

0101 1010 = 5AH


Cuando dominas esta metrica no tienes problemas en con una pasadita de vista decir tal o mas cual.


Un Saludo.


PD: Para programar micros no hace falta aprenderte esta metrica.Pero si la dominas muchas cosas podras ver dentro de los files Intelhex, Hex y Binarios.
Responder Con Cita
  #10  
Antiguo 17-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Eso ya lo sabia, pero por las respuestas parese que no existe esa representacion en delphi, de todas maneras si alguien sabe si se puede muchas gracias.
Responder Con Cita
  #11  
Antiguo 17-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por mario2000 Ver Mensaje
Eso ya lo sabia, pero por las respuestas parese que no existe esa representacion en delphi, de todas maneras si alguien sabe si se puede muchas gracias.
Insisto, tu puedes convertir un valor hexadecimal o decimal a Binario, lo que no entiendo es para que quieres enviarlo forzosamente como binario si al final lo que envias al puerto siempre es un byte.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 17-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por egostar Ver Mensaje
Insisto, tu puedes convertir un valor hexadecimal o decimal a Binario, lo que no entiendo es para que quieres enviarlo forzosamente como binario si al final lo que envias al puerto siempre es un byte.

Salud OS
Que no es un byte chaval ...... son ocho bits .. o sea una chorrera de 0 y 1

A que la cancion mi cuate.

Un Saludo.

PD:BinToBin
Responder Con Cita
  #13  
Antiguo 17-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Insisto, tu puedes convertir un valor hexadecimal o decimal a Binario, lo que no entiendo es para que quieres enviarlo forzosamente como binario si al final lo que envias al puerto siempre es un byte.

Salud OS
Es por comodidad y costumbre pero por favor digan los expertos en delphi si es o no posible es todo lo que quiero saber gracias
Responder Con Cita
  #14  
Antiguo 17-10-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 24
poliburro Va por buen camino
Cita:
Empezado por mario2000 Ver Mensaje
Es por comodidad y costumbre pero por favor digan los expertos en delphi si es o no posible es todo lo que quiero saber gracias

con quien cres que estás hablando?????????
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #15  
Antiguo 17-10-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 21
cHackAll Va por buen camino
Cita:
Empezado por mario2000 Ver Mensaje
Es por comodidad y costumbre pero por favor digan los expertos en delphi si es o no posible es todo lo que quiero saber gracias
En delphi eso no es posible, pero al final solo son formas de representar los datos los cuales al final son en su totalidad traducidos por el compilador.
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx

Última edición por cHackAll fecha: 17-10-2008 a las 17:25:14.
Responder Con Cita
  #16  
Antiguo 17-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
cHackAll, muchas gracias por tu aclaracion eso era lo que queria saber si se podia o no, en dado caso toca aferrarse a la metrica que menciona JoseFco muchas gracias a todos y un saludo a poliburro , que de burro no tiene nada
Responder Con Cita
  #17  
Antiguo 17-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por mario2000 Ver Mensaje
cHackAll, muchas gracias por tu aclaracion eso era lo que queria saber si se podia o no, en dado caso toca aferrarse a la metrica que menciona JoseFco muchas gracias a todos y un saludo a poliburro , que de burro no tiene nada
jajajajaaja ya se enteraron en Colombia que el burro es Pichi Corta!!


Un Saludo.


PDe seguro eduarcol tiene algo que ver en eso.
Responder Con Cita
  #18  
Antiguo 20-10-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 24
poliburro Va por buen camino
Cita:
Empezado por mario2000 Ver Mensaje
cHackAll, muchas gracias por tu aclaracion eso era lo que queria saber si se podia o no, en dado caso toca aferrarse a la metrica que menciona JoseFco muchas gracias a todos y un saludo a poliburro , que de burro no tiene nada
eso amigo tendrás que aclararlo jajajajja
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #19  
Antiguo 20-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Jua jua jua, Hola poliburro al que tienes que preguntarle es a JoseFco, yo no hable en sentido figurado, esa es cosa de ustedes que seguro ya se conosen de atras
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error con consulta numerica raulmm26 SQL 32 04-10-2008 14:30:00
Una duda numérica jafl1965 Humor 36 07-11-2007 01:55:59
Consulta numerica alcides SQL 4 05-08-2005 16:50:20
Extraer referencia numerica de un texto asegurpe Varios 4 13-06-2005 14:39:43
Crear secuencia numerica con un procedimiento almacenado DobleSiete SQL 9 15-04-2005 23:28:25


La franja horaria es GMT +2. Ahora son las 19:49:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi