Ich habe den folgenden Code für das MSB bekommen (Most Significant Bit) aus einer nicht-negativen ganzen Zahl, Int32
genauer zu sein:.NET - Ist das MSB der int32-Plattform agnostisch?
private static readonly int[] powersOf2 = new int[]
{
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384,
32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304,
8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912,
1073741824
};
public static int GetMsb(int value)
{
for (int k = powersOf2.Length - 1; k >= 0; k--)
{
var bit = (value & powersOf2[k]) != 0;
if (bit)
return (k + 1);
}
return 0;
}
wieder: Da diesem Wert nicht negativ ist.
Meine Frage ist:
Gewährleistet das .NET-Framework, dass dieser Code auf jeder Plattform ordnungsgemäß ausgeführt werden würde: x86/Windows/Linux/Sun/64bit?
Ist die Int32
Darstellung in .NET, einschließlich Endianness und Bit/Byte-Reihenfolge, Plattform Agnostic?
Vielen Dank im Voraus!
BTW, wenn dies ein Duplikat ist - bitte so schnell wie möglich kommentieren. Vielen Dank!
Es gibt nichts Plattform spezifisch über die Basis-2 Zahlensystem . – kenny