Vier Byte-Variablen zu einem Interger zusammenrechnen
Übersicht

#ReaperNewsposterBetreff: Vier Byte-Variablen zu einem Interger zusammenrechnen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, ich stehe mal wieder vor einem kleinem Problem.
Der Topic dürfte recht aussagekräftig sein. Ich habe 4 einzelne (Byte)-Variablen (bzw. sind die 4 Zahlen in einem Array), welche ich wieder zu einer einzigen Integer-Variable zusammenführgen/rechnen will. Nur weiß ich leider nicht, wie sich das ordentlich anstellen lässt. Bzw. ist das etwas ungenau beschrieben: Ich habe alle 4 Bytes eines Integers (bzw. DWords) einzeln. Also lösbar wäre das z.B. so: Code: [AUSKLAPPEN] Print Int("%"+ String(Int(Bin(254))) + String(Int(Bin(255))))
Ging das nicht auch "schöner"? ^^ Danke für eure Mühe ![]() MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
- Zuletzt bearbeitet von #Reaper am So, Feb 17, 2008 15:43, insgesamt einmal bearbeitet
c64 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Obs schöner is sei dahingestellt, es ist zumindest eine andere möglichkeit.
Hab gleich n performancetest gemacht, bei wenig schleifen is es schneller ... eigenartig das es bei mehreren langsamer wird. Code: [AUSKLAPPEN] Global IB:Byte[] IB=[Byte(255),Byte(254),Byte(000),Byte(000)] For e=1 To 3 Select e Case 1 cnt=10000 Case 2 cnt=25000 Case 3 cnt=50000 End Select Print cnt+" Durchläufe" t=MilliSecs() For c=1 To cnt IntBytesToInt(IB) Next Print MilliSecs()-t +" millisecs" Print IntBytesToInt(IB) t=MilliSecs() For c=1 To cnt x=Int("%"+ String(Int(Bin(254))) + String(Int(Bin(255)))) Next Print MilliSecs()-t +" millisecs" Print x Print "---------------------------------------------------" Next Function IntBytesToInt:Int(Bytes:Byte[]) rb=CreateBank(5) PokeByte rb,1,Bytes[0] PokeByte rb,2,Bytes[1] PokeByte rb,3,Bytes[2] PokeByte rb,4,Bytes[3] Return PeekInt (rb,1) EndFunction mfg c64 |
||
Betreten verboten! Kinder haften für ihre Eltern! |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einfach Shl verwenden:
Code: [AUSKLAPPEN] SuperStrict
Framework brl.standardio Import brl.retro Print Int("%"+ String(Int(Bin(254))) + String(Int(Bin(255)))) Print (254 Shl 8)+(255) Print Int("%"+ String(Int(Bin(252))) + String(Int(Bin(253))) + String(Int(Bin(254))) + String(Int(Bin(255)))) Print (252 Shl 24)+(253 Shl 16) +(254 Shl 8)+(255) Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auf die Idee mit der Bank hätte ich auch kommen können, wo es doch eh so nahe lag (bei meinem Proggi).
Und das es am Anfang schneller ist, liegt wohl an einem Momory-Leak, oder soetwas. Dreht man die Reihenfolge um (also von vielen Schleifen zu wenigen), sieht das schonwieder etwas anders aus ![]() Ich hatte auch gehofft, das soetwas wie FOODy es gepostet hat, möglicht ist, und das ist es nun zum Glück auch^^ FOODy seine Methode ist nämlich am schnellsten, schlägt mit 0 ms zu ![]() Bzw, sieht das bei mir so aus: Code: [AUSKLAPPEN] [b]500000[/b] Durchläufe
28022 millisecs 65279 1136 millisecs 65279 1 millisecs 65279 --------------------------------------------------- 25000 Durchläufe 2838 millisecs 65279 56 millisecs 65279 0 millisecs 65279 --------------------------------------------------- 10000 Durchläufe 1180 millisecs 65279 23 millisecs 65279 0 millisecs 65279 Danke euch beiden! ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Anmerkung: Die Variante von c64 ist wegen Little/Big Endian nicht portabel, deshalb solltest du auf jeden Fall Shl verwenden. | ||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group