Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » unsigned char in unsigned long

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.09.2004, 12:36 Uhr
Sapphira



Hallo,

ich habe ein unsigned char* Array. Diese Werte möchte ich aber als unsigned long haben. Gibt es eine Möglichkeit die unsigned char in unsigned long umzuwandeln?

Danke.
Sapphira
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.09.2004, 12:52 Uhr
(un)wissender
Niveauwart


Hm, mir ist nicht ganz klar was du willst.

Meinst du sowas (Vorsicht, plattformabhängig)

C++:
const unsigned char*  const zahl = "1234";
unsigned long zahl2 = *zahl << 24 + *(zahl + 1) << 16 + *(zahl + 2) << 8 + *(zahl + 3) ;



oder meinst du atoi?



C++:
#include <cstdlib>

const unsigned char*  const zahl = "1234";
unsigned long zahl2 = atoi(zahl);




Code tags korrigiert by virtual


Bearbeitung:

Hätte ich schon selber gemacht, war kurz abgelenkt, aber danke!


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 30.09.2004 um 13:00 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.09.2004, 13:32 Uhr
Sapphira



beide Vorschläge funktionieren bei mir nicht.

ich habe folgendes ausprobiert ... und es funktioniert


C++:
    unsigned char ucTemp;
    unsigned long ulTemp;
    unsigned long* ulTest = new unsigned long[100];

            for(int x=0; x<100; x++)
            {
                ucTemp = Buffer[x];
                ulTemp = ucTemp;
                ulTest[x] = ulTemp;
            }


Dieser Post wurde am 30.09.2004 um 13:34 Uhr von Sapphira editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.09.2004, 13:37 Uhr
~mike
Gast


Hi!
Hmm. Bei mir gehts einwandfrei ...
Eventuell hast du "störende" Zeichen und musst mit strtol mal parsen

C++:
#include <stdio.h>

int main(void)
{
  const char *wort = "1234";
  unsigned long test = atol(wort);
  printf("%u\n",test);

  return 0;
}


$ ./test
1234

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.09.2004, 13:55 Uhr
(un)wissender
Niveauwart


@Sapphira

std::copy tut es auch, und ist besser.


C++:
#include <algorithm>

unsigned long ulTest[100];
unsigned char buffer[100];

std::copy(buffer, buffer + 100, ulTest);




P.S.: Bei new [] -> delete [] nicht vergessen!


Bearbeitung:

Ich würde mir wünschen, dass du präzise sagst, was du möchtest (ist immernoch unklar).
Das was du jetzt machst ist ein einfaches kopieren, aber initial hat sich das so angehört, also wolltest du einen String in einen Zahl umwandeln, darum auch die atox-Sachen.


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 30.09.2004 um 13:58 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.09.2004, 21:15 Uhr
Hans
Library Walker
(Operator)



Zitat von Sapphira:
Hallo,

ich habe ein unsigned char* Array. Diese Werte möchte ich aber als unsigned long haben. Gibt es eine Möglichkeit die unsigned char in unsigned long umzuwandeln?

Danke.
Sapphira

Hi,
so wie ich das verstehe, willst Du aus den char's Long's machen, also Typen umwandlung, bzw. (im neudeutschen Fachchinesisch) type-casting. Das geht so:

C++:
char c;
long l;

c=1;
l=(long)c;  // die Typangabe in der Klammer ist die Anweisung zur Umwandlung.



In diesem Fall würde der compiler die Umwandlung aber auch alleine vornehmen, d.h. implizit umwandlen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: