lo hice con numeros binarios por que ando dandole a tope con el tema de los codigos binarios y le pille el ritmo a esto de los codigos binarios.
El rango de conversion es el mismo que abarca la codificacion UTF8 (0 a 6535) y muestra su caracter ascii correspondiente cuyo estandard ansii es de 0 asta 127, bueno aqui os dejo el code y el programa
unit Unit1;
{$codepage UTF8}
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
type
bite = %00000000..%1111111111;
bin = 0..1111111111111111;
var
Form1: TForm1;
numero,resultado,decimal,letra,suma,resta:bite;
binario:bin;
numerobin:int64;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
numero:=strtoint(edit1.Text);
resultado:=numero mod %00000010;
binario:=resultado;
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+resultado*10;
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*100);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*1000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*10000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*100000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*1000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*10000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*100000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*1000000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*10000000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*100000000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*1000000000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*10000000000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*100000000000000);
numero:=numero div %00000010;
resultado:= numero mod %00000010;
binario:=binario+(resultado*1000000000000000);
edit2.Text:=inttostr(binario);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
decimal:=%00000000;
numerobin:=strtoint64(edit2.Text);
decimal:=decimal+((numerobin mod %00001010)*%00000001);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%00000010);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%00000100);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%00001000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%00010000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%00100000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%01000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %0001010)*%10000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%100000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%1000000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%10000000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%100000000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%1000000000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%10000000000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%100000000000000);
numerobin:=numerobin div %00001010;
decimal:=decimal+((numerobin mod %00001010)*%1000000000000000);
edit3.Text:=inttostr(decimal);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
letra:=strtoint(edit1.Text);
edit4.Text:=chr(letra);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
suma:=strtoint(edit1.Text);
suma+=1;
edit1.Text:=inttostr(suma);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
resta:=strtoint(edit1.Text);
resta-=1;
edit1.Text:=inttostr(resta);
end;
end.
para que entiendan como funciona el programa %00000001 = 1,%00000010 = 2, %00000100 = 4, %00000101 = 5 etc etc...Explicacion del boton que pasa un decimal a binario (button1)
digamos que introdujimos 5
le haria la operacion de 5 a modulo 2 =1
lo almacenamos en la variable resultado y binario.
Despues dividimos 5 entre 2 a numeros enteros resultado = a 2
hacemos 2 modulo 2 =0 que multiplicado * 10 =0(no se suma nada entonces)
dividimos 2 entre 2 = 1 que multiplicado por 100 = 100 y sumado a 1 = 101
cuyo resultado es el numero en binario del 5
entonces dividimos en entero otra vez la variable numero que almacena 1
pero como el resultado de 1 entre 2 es 0
ya no puede trabajar mas y por lo tanto
nos devuelve el 101(su codigo en binario)
explicacion del boton que pasa de binario a decimal (button2)
Digamos que introdujimos 101 cuya cifra almacena numerobin
modulariamos 101 a 10 = 1 lo multplicamos por 1
y lo asignamos y sumamos a decimal
decimal=1
despues dividimos 101 entre 10 = 10 y lo asignamos a numerobin
numerobin=10
modulamos numerobin a 10 =0 que * 2 =0 porlo tanto no hay asignacion
entonces dividimos 10 entre 10 =1 lo asignamos a numerobin
y lo multiplicamos * 4 = 4
que sumado a 1 que almacena decimal = a 5
(5 = el decimal del codigo binario 101)
una toma del programa Descarga [Enlace externo eliminado para invitados]
1.69 Mb
espero les guste el programa un saludo