ERLEDIGT
NEIN
NEIN
ANTWORTEN
20
20
ZUGRIFFE
690
690
EMPFEHLEN
-
01.10.09 10:33 #1punky_A Tutorials.de Gastzugang
ich hab vier vershiedene werte 0x08 0x0a 0x02 0x0f
ich bauch den aber als einen also wie folgt 0x080a020f
also nicht zusammenrechenen sondern daraus einen machen
-
Hoi punky_A,
Binäre Operatoren sind das Stichwort!
Code :1
unsigned int uiRes = (0x8 << 24) | (0xA << 16) | (0x2 << 8) | 0xF;
Gruss
Cromon
-
01.10.09 10:50 #3Avorin Tutorials.de Gastzugang
Bitte gib mehr Infos.
Sind das Strings? oder irgenein anders Format?
So wie ich das interpretiere musst du die einzelnen Farbwerte nur um das 0x erleichtern und dann an einander appenden. dann noch ein 0x vor den neuen string und gut. aus String dürfte man ja auch in C++ int generieren können.
-
01.10.09 10:58 #4punky_A Tutorials.de Gastzugang
danke für die schnelle hilfe
in uiRes wird also der erste wert um 24 nach links verschoben ? danach um 16 danach um 8 und am schluss um 0 ?
wert uiRES hat also:
DWORD wert1 byte 0
DWORD wert2 byte 16
DWORD wert3 byte 24
DOWRD wert4 byte 32
?
so inetwa?
will verstehen was das genau macht, allerdings gehen mir ein paar bits verloren wie kann ich die restbits auf null setzen?
weil die bit anzahl dann schwindet, den rest auffüllen
@Avorin;
na es geht nicht um farben hab ich nur zur unterscheideung als einzelne hex werte gefärbt, formatierung im beitrag
-
Wir stellen uns ja 0x8 folgendermassen vor:
0000 0000 0000 0000 0000 0000 0000 1000
Nun verschieben wir das um 24 bits
0000 1000 0000 0000 0000 0000 0000 0000
0xA sieht so aus:
0000 0000 0000 0000 0000 0000 0000 1010
Nun verschieben wir um 16 bits:
0000 0000 0000 1010 0000 0000 0000 0000
Nun rechnen wir das OR:
0000 1000 0000 0000 0000 0000 0000 0000
0000 0000 0000 1010 0000 0000 0000 0000
----------------------------------------------------------------------
0000 1000 0000 1010 0000 0000 0000 0000
Wenn wir das scharf anschauen sehen wir:
0x080A0000
Dasselbe machen wir mit den restlichen zwei Zahlen.
-
01.10.09 11:16 #6punky_A Tutorials.de Gastzugang
also wenn ich das als timpestamp umrechnen gibts nne überlauf oder unterlauf keine ahnung also müssen irgendwelche bits verloren gehen
kann das sein
mytime=uiRes;
mytm=localtime(&mytime);
strftime(timestamp,sizeof timestamp,"%a, %d %b %Y %H:%M:%S %z",mytm);
printf("%s\n",timestamp); <-- erigibt ne zugriffsverletzung
vielen dank für die erklärung..
also wert :
005A0400 wird zb: 5A0400 und nicht 005A0400
-
01.10.09 11:28 #7
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
@punky_A: poste am besten ein komplettes, kompilierbares Minimal-Beispiel. Und erläutere mal überhaupt was das ganze soll, warum du die Werte so zusammenrechnen willst.
Einen time_t in irgend einer Form zu manipulieren ist keine gute Idee. Es ist nicht spezifiziert wie dieser Typ implementiert ist. Er kann auch durch einen float repräsentiert werden.
Gruß
... was absolut das gleiche ist.If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
01.10.09 11:34 #8punky_A Tutorials.de Gastzugang
auch an der anzahl der bits?
ich stell mir vor dass einfach die erste 8bits verloren gehen
00000 01010 01001 00110 <> 01010 01001 00110
die grösse der structur kann dann nicht stimme die übergeben wird?
ich will eigentlich wissen ob ein wert die high and low bits nicht setzt
ich bin da nicht so gebildet was das bit zeugs angeht erst am lernen wenn man es so nennen will
sonst könnt ich ja in ner binary alle 00 rausnehmen wenns dasselbe währ
und 0B01070A ergibt B01070A weil 0b 01 07 0a <> b0 10 70 aGeändert von punky_A (01.10.09 um 11:41 Uhr)
-
01.10.09 11:41 #9
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
01.10.09 11:50 #10punky_A Tutorials.de Gastzugang
tja und wieso ist dann:
0B01070A ergibt B01070A weil 0b 01 07 0a <> b0 10 70
also 0B01070A ist doch ein anderer wert als B01070A
-
Nein. Genau gleich wie 10 das gleiche ist wie 010 und 0010 und 00010 und 0000000000000000000000000000000000000000000000000000000000000000000000000...000010
-
01.10.09 12:00 #12
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
@punky_A: Bitte halte dich an die Netiquette, insbesondere Punkt 15. Danke!
Nein. 0033 == 33If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
01.10.09 12:05 #13punky_A Tutorials.de Gastzugang
printf(" %d <",0x0b01070a);
printf(">%d",0xb01070a);
ist aber
184616714 <> 18461671400
und
B01070A <>0B01070A
5899264 <>589926400Geändert von punky_A (01.10.09 um 12:08 Uhr)
-
01.10.09 12:09 #14
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
@punky_A: Soll ich es noch größer für dich schreiben? Lies die Netiquette und achte vor allem auf die Stichworte: "hineingeklatschte Beiträge", "Groß-/Kleinschreibung" und "unerwünscht".
Gruß
PS: und verwende die Code-Tags für Code-Schnipsel.If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
01.10.09 12:14 #15punky_A Tutorials.de Gastzugang
ach ihr legt auf falsche sachen einen wert naja tshüss kannst mir meinen account löschen
Ähnliche Themen
-
Mehrere Werte in einem Feld
Von ThoRr im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 22.02.10, 14:50 -
Mehrere Werte in einem Datendensatz
Von Geordi im Forum PHPAntworten: 6Letzter Beitrag: 24.03.08, 13:09 -
Mehrere werte mit einem input uebergeben ?
Von findekeinennick im Forum PHPAntworten: 11Letzter Beitrag: 06.10.04, 07:57 -
mehrere Werte in einem tabellenfeld
Von Ruediger im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 15.05.02, 09:21 -
mehrere werte in einem tabellenfeld
Von Ruediger im Forum PHPAntworten: 3Letzter Beitrag: 10.05.02, 15:18






Login






