Typecast in VB
Hallo zusammen,
wir sitzen hier vor einem Problem und kriegen irgendwie nirgends ne Lösung her.
In C kann man einen einfachen Typecast machen. So wird bsp. aus einem char ein int, ohne dass sich die Bitkombination ändert -> (int) char_Variable
Jetzt wollen wir sowas auch in VB realisieren, aber irgendwie findet man nur Converter, die den tatsächlichen Wert in das andere Format umrechnen und nicht die Bitkombination beibehalten.
wir sitzen hier vor einem Problem und kriegen irgendwie nirgends ne Lösung her.
In C kann man einen einfachen Typecast machen. So wird bsp. aus einem char ein int, ohne dass sich die Bitkombination ändert -> (int) char_Variable
Jetzt wollen wir sowas auch in VB realisieren, aber irgendwie findet man nur Converter, die den tatsächlichen Wert in das andere Format umrechnen und nicht die Bitkombination beibehalten.
Beispiel:
Dim ui_Ausgangswert AsUInteger = 10
Dim s_Zielwert AsNewSingle
s_Zielwert = ?????? ui_Ausgangswert ????? -> So dass s_Zielwert = 1,401298E-44
Wenn man die Bitkombination im Speicher anschauen würde, wäre sie bei beiden gleich. Nur wird sie ja unterschiedlich interpretiert. In C wäre das ganze einfach zu lösen:
int i_Ausgangswert = 10;
float f_Zielwert;
f_Zielwert = (float) i_Ausgangswert;
In VB haben wir es jetzt auch hinbekommen, aber leider nicht auf eine so schöne Art und Weise:
Dim ui_Ausgangswert AsUInteger = 10Dim s_Zielwert AsNewSingleDim b_TmpArray() AsByteb_TmpArray = BitConverter.GetBytes(ui_Ausgangswert)
s_Zielwert =
BitConverter.ToSingle(b_TmpArray, 0)
Dim ui_Ausgangswert AsUInteger = 10
Dim s_Zielwert AsNewSingle
s_Zielwert = ?????? ui_Ausgangswert ????? -> So dass s_Zielwert = 1,401298E-44
Wenn man die Bitkombination im Speicher anschauen würde, wäre sie bei beiden gleich. Nur wird sie ja unterschiedlich interpretiert. In C wäre das ganze einfach zu lösen:
int i_Ausgangswert = 10;
float f_Zielwert;
f_Zielwert = (float) i_Ausgangswert;
In VB haben wir es jetzt auch hinbekommen, aber leider nicht auf eine so schöne Art und Weise:
Dim ui_Ausgangswert AsUInteger = 10Dim s_Zielwert AsNewSingleDim b_TmpArray() AsByteb_TmpArray = BitConverter.GetBytes(ui_Ausgangswert)
s_Zielwert =
BitConverter.ToSingle(b_TmpArray, 0)


