Avatar billede andersbodilsen Nybegynder
18. februar 2005 - 15:42 Der er 3 kommentarer og
1 løsning

Konvertring fra byte[] til short[]

Hej alle.

Jeg står og skal have casted et byte[] til et short[].... Men uden det store held.

Jeg forsøgt mig med lidt unsafe kode som følger:

unsafe
{
    short* Pbyte = ( short* ) waveDataByte;
}

Det er ikke noget kompileren bryder sig om...

Er der nogen der lige kan klare den i en smuttag? :-)
Avatar billede arne_v Ekspert
18. februar 2005 - 16:01 #1
Det er sikkert ikke hurtigste måde, men der er ingen unsafe mode i de:

using System;
using System.IO;

namespace E2
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            byte[] ba = new byte[4];
            ba[0] = 1;
            ba[1] = 2;
            ba[2] = 3;
            ba[3] = 4;
            MemoryStream ms = new MemoryStream(ba);
            BinaryReader br = new BinaryReader(ms);
            for(int i = 0; i < ba.Length/2; i++)
            {
                short s = br.ReadInt16();
                Console.WriteLine(s);
            }
        }
    }
}
Avatar billede driis Nybegynder
18. februar 2005 - 16:32 #2
Flg. er cirka det samme men måske lidt bedre performancemæssigt idet du ikke skal bruge en MemoryStream eller BinaryReader:

public static short [] byteToShort(byte [] bytes)
{
    short [] shorts = new short[bytes.Length / 2];
    for ( int i = 0 ; i < bytes.Length ; i+=2 )
        shorts[i/2] = BitConverter.ToInt16(bytes,i);
    return shorts;
}
Avatar billede andersbodilsen Nybegynder
21. februar 2005 - 11:14 #3
tak, for svarene... Jeg brugt driis's stykke kode. smid et svar
Avatar billede driis Nybegynder
21. februar 2005 - 15:16 #4
svar :-)
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