Avatar billede thomaxz Nybegynder
29. januar 2007 - 09:40 Der er 4 kommentarer og
1 løsning

Hexadciaml til binaært array

jeg har denne kode

    public static string Bin2Hex(byte[] bin)
        {
            StringBuilder sb = new StringBuilder(bin.Length * 2);
            foreach(byte b in bin) {
                sb.Append(b.ToString("x").PadLeft(2, '0'));
            }
            return sb.ToString();
        }

mit spørgmål er hvordan laver jeg den omvendte?
Avatar billede thomaxz Nybegynder
29. januar 2007 - 10:56 #1
jeg har prøvet lidt

    public static byte[] Hex2Bin(string hex)
        {
            string txt = "";
            string res="";
            uint hexhold;
            Char chold;
            byte[] conv;
            for (int xtel = 0; xtel < hex.Length; xtel = xtel + 2)
            {
                txt = hex.Substring(xtel, 2);
                hexhold = System.Convert.ToUInt32(txt, 16);
                chold=(char)hexhold;
                res+=chold;
            }

            conv = System.Text.Encoding.ASCII.GetBytes(res);
            return conv;
        }

men det viker ikke, for når jeg prøver med FF, siger ÿ i chold, i conv er det 63
Avatar billede thomaxz Nybegynder
29. januar 2007 - 11:34 #2
Det ser ud til at hvis jeg bruger

conv = System.Text.Encoding.Unicode.GetBytes(res); i stdet giver den de rigitg værdier, men der er dobbelt så mange byte, at hveranden er 0
Avatar billede thomaxz Nybegynder
29. januar 2007 - 12:20 #3
public static byte[] Hex2Bin(string hex)
        {
            string txt = "";           
            uint hexhold;
            int ytel=0;
            byte[] conv=new byte[(hex.Length/2)+1];
            for (int xtel = 0; xtel < hex.Length; xtel = xtel + 2)
            {             
                txt = hex.Substring(xtel, 2);
                hexhold = System.Convert.ToUInt32(txt, 16);
                conv[ytel] = System.Convert.ToByte(hexhold);
                ytel++;
            }           
           
            return conv;
        }
Avatar billede arne_v Ekspert
29. januar 2007 - 16:56 #4
byte[] conv=new byte[((hex.Length-1)/2)+1];
Avatar billede thomaxz Nybegynder
08. februar 2007 - 21:40 #5
lukker
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