Servus zusammen (nach langer langer zeit mal wieder):
kann mir jemand auf die sprünge helfen ?
Folgende Ausgangsituatio hätte ich:
[highlight=c#]
private void button6_Click(object sender, EventArgs e)
{
int basis1 = 8 ; // mit 4 Bits maximal / max = 15
int basis2 = 212 ; // mit z.B. 8 Bits maximal
int bitsBasis1 = 4;
int b1Undb2 = ((basis2 << bitsBasis1) + basis1); ; // = 3400
Console.WriteLine("ZusammenSet: aus {0} und {1}: = {2}", basis1, basis2, b1Undb2);
// die umkehrung wäre !
int getBasis2 = b1Undb2 >> bitsBasis1; // = 212 - passt !
// hier mein "ausmaskieren" der oberen bits welches probleme macht !
int getBasis1 = (b1Undb2 << (32 - bitsBasis1)) >> (32 - bitsBasis1);
Console.WriteLine("ZusammenGet: aus {0} und {1}: = {2}", getBasis1, getBasis2, b1Undb2);
}
[/highlight]
kann ich die Bits ab Position (hier) 5 nicht einfach wegShiften ?
bzw. wahrscheinlich gibts da eine LOGISCHERE lösung !? :-)
vielen dank für eure hilfe
r.b.
kann mir jemand auf die sprünge helfen ?
Folgende Ausgangsituatio hätte ich:
[highlight=c#]
private void button6_Click(object sender, EventArgs e)
{
int basis1 = 8 ; // mit 4 Bits maximal / max = 15
int basis2 = 212 ; // mit z.B. 8 Bits maximal
int bitsBasis1 = 4;
int b1Undb2 = ((basis2 << bitsBasis1) + basis1); ; // = 3400
Console.WriteLine("ZusammenSet: aus {0} und {1}: = {2}", basis1, basis2, b1Undb2);
// die umkehrung wäre !
int getBasis2 = b1Undb2 >> bitsBasis1; // = 212 - passt !
// hier mein "ausmaskieren" der oberen bits welches probleme macht !
int getBasis1 = (b1Undb2 << (32 - bitsBasis1)) >> (32 - bitsBasis1);
Console.WriteLine("ZusammenGet: aus {0} und {1}: = {2}", getBasis1, getBasis2, b1Undb2);
}
[/highlight]
kann ich die Bits ab Position (hier) 5 nicht einfach wegShiften ?
bzw. wahrscheinlich gibts da eine LOGISCHERE lösung !? :-)
vielen dank für eure hilfe
r.b.
Comment