| 

.NET C# Java Javascript Exception

4
Hallo, ich brauch mal hilfe ...

public static int getIntegerFromBitArray(BitArray bitArray)
{
var result = new int[1];
bitArray.CopyTo(result, 0);
return result[0];
}

// Input A) 01110
// Output A) 14
// Input B) 0011
// Output B) 12 <=== ????? WARUM!!! :)

Warum zum Geier kommt bei B) 12 raus und nicht 3? Ich hoffe mir kann jemand helfen..

Danke und Gruß
14.03.2012
Nicolai Schönberg 2,4k 2 9
2 Antworten
4
Werden die "Rückwärts" ausgelesen?

01110 ist 01110, also immer 14

0011 oder 1100 ???

Nachtrag: Es ist doch ein Array, also haben die höheren Indexwerte auch den höheren Zahlenwert.
14.03.2012
Xantiva 2,3k 2 9
Xantiva 2,3k 2 9
puh ich hoffe das es nicht so ist ... Mal rumprobieren
Nicolai Schönberg 14.03.2012
2
Es ist tatsächlich so. Und ich hab jetzt nochmal geschaut warum das so ist ... das kleinste / unbedeutendste byte ist 0. Ergo [0] = 0 / 1, [1] = 0 / 2, [2] = 0 / 4 ... Naja wieder was gelernt :-)
Nicolai Schönberg 14.03.2012
2
Hi Nicolai,

scheint als ob BitArray die Bits nicht in der "gewohnten Richtung" verarbeitet. 0011 sieht für uns aus wie 3, aber wenn man das umdreht, wird 1100 draus, und das ist 12.
Bug oder Feature?! BitArray gibt es schon so lange, ich vermute deshalb, dass es kein Bug ist, sondern irgendwo in den Tiefen der Doku ein Grund dafür zu finden ist.

Florian
14.03.2012
ffordermaier 8,4k 3 9
Ein Grund in der Doku hab ich nicht gefunden, aber es scheint so zu sein wie ich oben in meinem Comment geschrieben habe
Nicolai Schönberg 14.03.2012
Plausibel aber dennoch irgendwie ungewöhnlich...
ffordermaier 14.03.2012

Stelle deine Programmieren-Frage jetzt!