Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda tranformar a binario

nicolkill

Bovino maduro
Desde
26 Ene 2010
Mensajes
237
Pues quiero transformar de letra o texto a codigo binario, se transformar numeros decimales pero asta hay, por hay en internet lei que se utilisa el equibalente en acsii pero al transformarlo no me sale el quibalente, sale un numero paresido
como se transforman
 
por el foro libre andaba un tema que tiene el link a una página que hace eso de convertir texto...dale una buscada a lo mejor te sirve de algo
 
si ya lo abia encontrado pero lo que quiero es convertirlo de forma manual osea usando el cerebro no un convertiror amigo
 
Pues quiero transformar de letra o texto a codigo binario, se transformar numeros decimales pero asta hay, por hay en internet lei que se utilisa el equibalente en acsii pero al transformarlo no me sale el quibalente, sale un numero paresido
como se transforman


Ahi esta tu solucion creo jejejeej con el codigo ascii obtienes el numero al que equivale y este numero lo conviertes a binario, y buedes crear un arreglo bidimenasional en el que guardes el caracter y en el otro el valor en binario y despues con una funciones llamas la equivalencia y concatenas el resultado y ya.
 
si ya lo abia encontrado pero lo que quiero es convertirlo de forma manual osea usando el cerebro no un convertiror amigo
si te entendí, te recomendé eso para que vieras como funcionaba...y la solución que te da el otro compa parece ser viable
 
jajajaja me perdi jajaja podrias darme un ejemplo de como se hace,
por ejemplo la A, la A equibale a 65 en ascii
65/2=32.5 1
32/2=16 0
16/2=8 0
8/2=4 0
4/2=2 0
2/2=1 0
1/2=0.5 1
da 1000001 y segun la wikipedia que encontre todas las letras en binario la A es 0100 0001
asi que si me pueden explicar paso a pasito como se hace se los agradesco
PD: no es tarea esto es con el fin de aprender ya que me atore en esto y quisiera despejar mi duda
 
para acotar a tu analisis una letra es de tipo CHAR por el cual tiene 8bits por tanto A = 1000001 = 01000001 = 0100 0001
el ejmplo que podria ayudar es la LETRA C = 67
67 mod 2 = 1
33 mod 2 = 1
16 mod 2 = 0
8 mod 2 =0
4 mod 2 =0
2 mod 2 =0
1 mod 2 =1
entonces C = 1000011 =01000011 = 0100 0011

suerte
 
aaaaaaaaaaa entonces como las letras son caracter CHAR que son de 8 bits como es A 1000001 en binario, son 7 digitos en binario lo cual es 1 bit por cada digito son 7 como la letra es caracter char tiene que ser de 8 entonses se le agrega el 0 al final de el binario (se lee de derecha a izquierda para los principiantes que lean los comentarios) y quedaria 01000001
OK gracias corrijanme si me equiboco
 
asi es.... se le agrega un 0 al final por que tiene que ser si o si de 8 bits (1 byte).
ademas los la letras a..z y A.. Z son numeros inferiores a 128.

pero para que quede mas claro aun... lo mas correcto seria hacer una operacion mas.... para que se complete los 8 bits.

67 mod 2 = 1
33 mod 2 = 1
16 mod 2 = 0
8 mod 2 =0
4 mod 2 =0
2 mod 2 =0 -----/--------- > 4/2=2 valorentero de 2 =2
1 mod 2 =1 -----/--------- > 2/2=1 valorentero de 1 =1
0 mod 2 =0 -----/-----------> 1/2=0.5 valor entero de 0.5 = 0

en cual ya se hizo 8 operaciones para los 8 bits

TIP:
si el lenguaje de progracion que estas usando te permite mover bits a la izq o a la derecha es mas facil extraer.
65 = 0100 0011
moviendo bit a la izq
01000011------> mostrar 0
10000110------> mostrar 1
00001100------> mostrar 0
00011000------> mostrar 0
00110000------> mostrar 0
01100000------> mostrar 0
11000000------> mostrar 1
10000000------> mostrar 1
 
Aqui el mio como funciona.

Jejeje pues viendo lo que dice yo me puse a hacer el mio

lo hice con C Sharp en visual studio 2010 framework 2

aqui el codigo completo y adjunto la fuente del programa por si quieren bajarlo:


Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace text_binary
{
    public partial class Form1 : Form
    {
        string[,] convert = new string[,]
        {
            {" ","00100000"},//90
            {"!","00100001"},//90
            //{""",""},ALT+34
            {"#","00100011"},
            {"$","00100100"},
            {"%","00100101"},
            {"&","00100110"},
            {"'","00100111"},
            {"(","00101000"},
            {")","00101001"},
            {"*","00101010"},
            {"+","00101011"},
            {",","00101100"},
            {"-","00101101"},
            {".","0010110"},
            {"/","00101111"},
            {"0","00110000"},
            {"1","00110001"},
            {"2","00110010"},
            {"3","00110011"},
            {"4","00110100"},
            {"5","00110101"},
            {"6","00110110"},
            {"7","00110111"},
            {"8","00111000"},
            {"9","00111001"},
            {":","00111010"},
            {";","00111011"},
            {"<","00111100"},
            {"=","00111101"},
            {">","00111110"},
            {"?","00111111"},
            {"@","01000000"},
            {"A","01000001"},
            {"B","01000010"},
            {"C","01000011"},
            {"D","01000100"},
            {"E","01000101"},
            {"F","01000110"},
            {"G","01000111"},
            {"H","01001000"},
            {"I","01001001"},//40
            {"J","01001010"},
            {"K","01001011"},
            {"L","01001100"},
            {"M","01001101"},
            {"N","01001110"},
            {"O","01001111"},
            {"P","01010000"},
            {"Q","01010001"},
            {"R","01010010"},
            {"S","01010011"},//50
            {"T","01010100"},
            {"U","01010101"},
            {"V","01010110"},
            {"W","01010111"},
            {"X","01011000"},
            {"Y","01011001"},
            {"Z","01011010"},
            {"[","01011011"},
            //{"\","0101 1100 "},ALT+92
            {"]","01011101"},
            {"^","01011110"},
            {"_","01011111"},//60
            {"`","01100000"},
            {"a","01100001"},
            {"b","01100010"},
            {"c","01100011"},
            {"d","01100100"},
            {"e","01100101"},
            {"f","01100110"},
            {"g","01100111"},
            {"h","01101000"},
            {"i","01101001"},
            {"j","01101010"},
            {"k","01101011"},
            {"l","01101100"},
            {"m","01101101"},
            {"n","01101110"},
            {"o","01101111"},
            {"p","01110000"},
            {"q","01110001"},
            {"r","01110010"},
            {"s","01110011"},
            {"t","01110100"},
            {"u","01110101"},
            {"v","01110110"},
            {"w","01110111"},
            {"x","01111000"},
            {"y","01111001"},
            {"z","01111010"},
            {"{","01111011"},
            {"|","01111100"},//90//89
        };
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            MessageBox.Show("JoshybaDevelopment", "JoshybaCorp");

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string cadfinal = "";
            string cadini=textBox1.Text;
            int tama = textBox1.Text.Length;
            tama--;
            for (int a = 0; a <= tama; a++)
            {
                for (int b = 0; b <= 89; b++)
                {
                    if (cadini.Substring(0, 1) == convert[b, 0])
                    {
                        cadfinal += convert[b, 1];
                    }
                }
            }
            textBox2.Text = cadfinal;
        }
    }
}

44250626399580329872.png


67115111735233186601.png


17301430945683419598.png


06480373653332709751.png



aqui la fuente
 
Excelente aporte amigo eldesvirginador solo espero que el amigo nicolkill sea agradecido....
 
bueno para terminar mi aporte y aplicado lo de mover bits.... y conla inspiracion de amigo eldesvir.... que por cierto esta excelente el programa.....
tambien me puse a trabajar en la logica del programa en C#, y esto es lo que salio y aca la fuente explicado paso a paso..

Código:
using System;
class Binario{
    
    public string encodeBinario(string cad){  [B]//convertir a binario[/B]
          string pal="";
          int p;
          int A;
          for(int j=0; j<cad.Length; j++){
                A = (int)cad[j]; [B] //extrayendo el un caracter[/B]
                  for(int i=0; i<8; i++ ){       
                    p=A&128;[B] //verificando si es  1000 0000[/B]
                    p=p>>7;  [B]//moviendo bits a la derecha, si fuese 1000 0000  entonces sera 0000 0001 equivalente a 1 en decimal[/B]
                    pal+=(byte)p; [B]//convirtiendo  lo extraido 1 o 0  a caracter y acumulando[/B]
                    A=A<<1; [B]//moviendo bits a la izq ej: 0100 0000 <<1 sera =  1000 0000[/B]
                  }
          }
          return pal;       
    }
    
    public string decodeBinario(string cad){
        string pal="";
        int p;    
        int A;
        for(int i=0; i<cad.Length;){  [B]//recorrer todad la cadena[/B]
            p=0;            
            for(int j=7; j>=0; j--){ [B] //agrupar de 8 en 8  [/B]
                A=(int)cad[i]==49?1:0;  [B]// preguntamos si el caracter es '1' en ascii = 49  , si es '1' entonces 1 = 0000 0001[/B]
                A=A<<j; [B]// movemos el valor a su respectivo lugar[/B]
                p= p|A;  [B]// aplicamos una suma binaria  o OR para bits  acumulando el resultado[/B]
                i++;
            }
            pal+=(char)p;
        }
        return pal;
    }
  
}

class Test{

   public static void Main(){
     Binario bin = new Binario();
     string cad;
     cad = bin.encodeBinario("AC");
     
     Console.WriteLine("{0}", cad );
   [B]  //salida en cad es 0100000101000011[/B]
     Console.WriteLine("{0}", bin.decodeBinario(cad) );
   [B] // salida es :  AC[/B]
     
   }

}
 
Volver
Arriba