tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
20
ZUGRIFFE
690
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
DIESES THEMA IST
GESCHLOSSEN
  1. #1
    punky_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
     

  2. #2
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    Hoi punky_A,

    Binäre Operatoren sind das Stichwort!
    Code :
    1
    
    unsigned int uiRes = (0x8 << 24) | (0xA << 16) | (0x2 << 8) | 0xF;

    Gruss
    Cromon
     

  3. #3
    Avorin 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.
     

  4. #4
    punky_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
     

  5. #5
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    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.
     

  6. #6
    punky_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
     

  7. #7
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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ß

    Zitat Zitat von punky_A Beitrag anzeigen
    also wert :
    005A0400 wird zb: 5A0400 und nicht 005A0400
    ... was absolut das gleiche ist.
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  8. #8
    punky_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 a
    Geändert von punky_A (01.10.09 um 11:41 Uhr)
     

  9. #9
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Bitte halte dich an die Netiquette, insbesondere Punkt 15. Danke!

    Zitat Zitat von punky_A Beitrag anzeigen
    auch an der anzahl der bits?
    ich stell mir vor dass einfach die erste 8bits verloren gehen
    Eine 32bit Variable ist immer 32bit groß. Da geht nichts verloren.
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  10. #10
    punky_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
     

  11. #11
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    Nein. Genau gleich wie 10 das gleiche ist wie 010 und 0010 und 00010 und 0000000000000000000000000000000000000000000000000000000000000000000000000...000010
     

  12. #12
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    @punky_A: Bitte halte dich an die Netiquette, insbesondere Punkt 15. Danke!
    Zitat Zitat von punky_A Beitrag anzeigen
    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. 0033 == 33
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  13. #13
    punky_A Tutorials.de Gastzugang
    printf(" %d <",0x0b01070a);
    printf(">%d",0xb01070a);

    ist aber
    184616714 <> 18461671400

    und
    B01070A <>0B01070A
    5899264 <>589926400
    Geändert von punky_A (01.10.09 um 12:08 Uhr)
     

  14. #14
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  15. #15
    punky_A Tutorials.de Gastzugang
    ach ihr legt auf falsche sachen einen wert naja tshüss kannst mir meinen account löschen
     

Ähnliche Themen

  1. Mehrere Werte in einem Feld
    Von ThoRr im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 22.02.10, 14:50
  2. Mehrere Werte in einem Datendensatz
    Von Geordi im Forum PHP
    Antworten: 6
    Letzter Beitrag: 24.03.08, 13:09
  3. Mehrere werte mit einem input uebergeben ?
    Von findekeinennick im Forum PHP
    Antworten: 11
    Letzter Beitrag: 06.10.04, 07:57
  4. mehrere Werte in einem tabellenfeld
    Von Ruediger im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 15.05.02, 09:21
  5. mehrere werte in einem tabellenfeld
    Von Ruediger im Forum PHP
    Antworten: 3
    Letzter Beitrag: 10.05.02, 15:18