Avatar billede finger Nybegynder
23. juni 2006 - 13:10 Der er 6 kommentarer og
1 løsning

Parse string to byte

Hej. hvis jeg nu har en lag række af bytes repræsenterest ved 0 og 1'er hvordan kan jeg så parse dem til bytes og videre til chars?

Jeg har kigget på Byte klassen, men synes ikke at der er noget brugbart. Jeg vil fx gerne oversætte dette til læsbar text:

01010100 01101000 01110010 01100001 01101100 01101100 00100000 01100001 01101110 01100100 00100000 01001010 01100001 01101001 01101110 01100001 00100000 01110011 01101001 01110100 01110100 01101001 01101110 01100111 00100000 01101001 01101110 00100000 01100001 00100000 01110100 01110010 01100101 01100101 00101100 00100000 01001011 00101101 01001001 00101101 01010011 00101101 01010011 00101101 01001001 00101101 01001110 00101101 01000111
Avatar billede lateralus Nybegynder
23. juni 2006 - 13:36 #1
Prøv at bruge:

byte[] data = // hent data

string text = System.Text.ASCIIEncoding.ASCII.GetString(data);
Avatar billede finger Nybegynder
23. juni 2006 - 13:44 #2
Men det kan jeg jo kun hvis jeg har fx "01010100" som en byte og jeg kan ikke se hvordan jeg skal kunne parse "01010100" til en byte...
Avatar billede arne_v Ekspert
23. juni 2006 - 14:04 #3
du har brug for at parse en string med 0 og 1 til et tal ?

prøv med FromBin fra denne kode:

using System;

class MainClass
{
    private static string DIGITS = "0123456789ABCDEF";
    private static int FromAny(string s, int radix)
    {
        int res = 0;
        char[] sa = s.ToCharArray();
        for (int i = 0; i < s.Length; i++) {
            res = res * radix + DIGITS.IndexOf(sa[i]);
        }
        return res;
    }
    private static string ToAny(int i, int radix)
    {
        string res = "";
        int tmp = i;
        while (tmp > 0) {
            res = DIGITS.ToCharArray()[tmp % radix] + res;
            tmp = tmp / radix;
        }
        return res;
    }
    public static int FromDec(string s)
    {
        return FromAny(s, 10);
    }
    public static string ToDec(int i)
    {
        return ToAny(i, 10);
    }
    public static int FromHex(string s)
    {
        return FromAny(s, 16);
    }
    public static string ToHex(int i)
    {
        return ToAny(i, 16);
    }
    public static int FromBin(string s)
    {
        return FromAny(s, 2);
    }
    public static string ToBin(int i)
    {
        return ToAny(i, 2);
    }
    public static void Main(string[] args)
    {
        Console.WriteLine(ToBin(FromHex("FF")));
        Console.WriteLine(ToBin(FromDec("11")));
    }
}
Avatar billede finger Nybegynder
23. juni 2006 - 14:51 #4
som altid reder Arne v dagen :)
smid et svar!
Hvis nogen er interesseret i at kunne konvertere mellem ASCII og Binary og tilbage igen kan de prøve programmet her:
http://www.hitanykey.dk/public/yodaline/converter.zip

bare rolig, der er ikke ret meget virus i ;-)
Avatar billede arne_v Ekspert
23. juni 2006 - 15:03 #5
svar
Avatar billede danskov Nybegynder
27. juni 2006 - 17:28 #6
Kom lige til at sidde og rode med det her meget cool eksempel. Men
"Thrall and Jaina sitting in a tree, K-I-S-S-I-N-G", det lyder lidt skummelt ;)
Avatar billede arne_v Ekspert
28. juni 2006 - 02:14 #7
Jeg ved ikke om det lyder skummelt, snarere lidt spøjst, men der er brugt mange
sære ting til test !

Der er også en som har postet spørgsmål hvor test data var på latin (tror jeg ihvertfald
det var).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester