Ayuda tranformar a binario

nicolkill

Bovino maduro
#1
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
 
#2
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
 

nicolkill

Bovino maduro
#3
si ya lo abia encontrado pero lo que quiero es convertirlo de forma manual osea usando el cerebro no un convertiror amigo
 
#4
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.
 

nicolkill

Bovino maduro
#6
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
P:eek: no es tarea esto es con el fin de aprender ya que me atore en esto y quisiera despejar mi duda
 

registro500

Bovino adolescente
#7
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
 

nicolkill

Bovino maduro
#8
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
 

registro500

Bovino adolescente
#9
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
 
#10
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;
        }
    }
}









aqui la fuente
 

registro500

Bovino adolescente
#14
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]
     
   }

}
 
Arriba