Toon posts:

[C++] conversieprobleempje 8 naar 16 cijfercode

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het aanpassen van een Turbo C++ 3 project.

Het probleem is om een, door het gehele project gebruikte variabele, om te zetten van 8 naar 16 cijferig.

Voorheen werd deze opgeslagen in een unsigned long (niet altijd even handig lijkt mij, maar ok), maar gezien er nu dus 16 cijfers moeten worden opgeslagen kan dit datatype niet langer.

Iemand suggesties om dit op zo'n snel en effectief mogelijke wijze op te kunnen lossen?
Het gaat hier niet om een enkele methoden die aangepast moeten worden maar enkele tientallen, inclusief structuren en koppelingen naar database velden (dbf).

Ik hoop zelf dat het mogelijk is om een datatype te genereren die eenvoudigweg bijvoorbeeld uit twee longs bestaat maar die verder gebruikt kan worden en reageerd als een normale long. Ik weet echter niet, vanwege beperkte ervaring met c++, of deze mogelijkheid in deze taal aanwezig is.

De long's omzetten naar char* is uiteraard ook een mogelijkheid bedacht ik, maar dan moeten er wel heel erg veel conversies worden uitgevoerd? of niet? omdat je pointer problemen krijgt e.a. iemand een idee hoe dit snel zou kunnen?

Iemand ideeen of suggesties? of details hoe iets dergelijks snel aan te pakken is?

thanx

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik hoop zelf dat het mogelijk is om een datatype te genereren die eenvoudigweg bijvoorbeeld uit twee longs bestaat maar die verder gebruikt kan worden en reageerd als een normale long. Ik weet echter niet, vanwege beperkte ervaring met c++, of deze mogelijkheid in deze taal aanwezig is.
dat kan idd prima, je kunt gewoon operatoren erop definieren, zodat het gewoon lijkt op een echt datatype

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20-08 00:10
Het is juist handig om daar een apart type voor te definiëren; als je dat in het begin had gedaan, had je nu alleen je typedefinitie hoeven aanpassen.

Qua implementatie kun je misschien het makkelijkst gebruik maken van een 64-bits integer, hoewel type identifier daarvan helaas niet gestandaardiseerd is. Onder MS VC++ is het __int64, dacht ik; onder GCC is het "long long int".

Verwijderd

Topicstarter
Datatype idee lijkt dus goed... maar hoe?

Datatypen maken en daarop de juiste methoden loslaten..
Hoe pak ik dat het meest efficient aan in c++??

Klein voorbeeldje?

Verwijderd

Topicstarter
ik ga ff zoeken naar een groter datatype onder TC++ 3.. misschien helpt de standaardbiblio's mij al voldoende..

:)

thanx

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Soultaker schreef op 23 October 2003 @ 16:21:
Qua implementatie kun je misschien het makkelijkst gebruik maken van een 64-bits integer, hoewel type identifier daarvan helaas niet gestandaardiseerd is. Onder MS VC++ is het __int64, dacht ik; onder GCC is het "long long int".
Ik denk dat je onder beide compilers het 'long long' datatype kunt gebruiken.


[edit]

lamaar, ik zit te ouwehoeren ...... :D

[ Voor 10% gewijzigd door farlane op 23-10-2003 16:35 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 17:14
Veel te oude compiler.

Er zijn weinig 16-cijferige getallen. 16-cijferige codes zijn veel gangbaarder. Het verschil is dat een streepjescode+1 onzin is, terwijl een getal+1 dat niet is. Codes kunnen het best als string worden gerepresenteerd. Nou is TC++3 uit m'n hoofd wel oud, maar niet zo oud dat het beste string type char* zou zijn. Als er geen standaard type is, dan maar een eigen string type bakken.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

Topicstarter
hij slikt long long wel..

nou nog even goed weer te geven (zodat ik zeker weet dat hij niet maar net doet alsof hij het accepteerd).. en het zou perfect zijn..

iemand een ideej?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

farlane schreef op 23 October 2003 @ 16:30:
[...]


Ik denk dat je onder beide compilers het 'long long' datatype kunt gebruiken.


MSVC++ doet het pas sinds 7.1 volgens mij

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

.oisyn schreef op 23 October 2003 @ 16:56:
[nohtml]
[...]
[/nohtml]

MSVC++ doet het pas sinds 7.1 volgens mij

Staat me toch echt bij dat ik 'm onder VC6 heb gebruikt? :?

Professionele website nodig?


Verwijderd

Aangezien je compiler het vreet:
C++:
1
unsigned long long l = 9999999999999999;

Als het een code is waarmee je niet wilt rekenen:
code:
1
const unsigned long long l = 9999999999999999;

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

curry684 schreef op 23 October 2003 @ 16:59:
[nohtml]
[...]
[/nohtml]
Staat me toch echt bij dat ik 'm onder VC6 heb gebruikt? :?
error C2632: 'long' followed by 'long' is illegal
:)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Long long slikt de compiler hier...
is al heel wat voor een c++ compilertje uit 1992 (turbo c++ 3)
..

maar nu ff testen of het ook echt werkt...
iemand enig idee hoe ik het in 1x in een printf-je krijg?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
MSalters schreef op 23 October 2003 @ 16:41:
Nou is TC++3 uit m'n hoofd wel oud, maar niet zo oud dat het beste string type char* zou zijn. Als er geen standaard type is, dan maar een eigen string type bakken.
TC3 heeft in zijn class library ook een string class. Moet 'ie wel ff 'aanvinken' in de project opties. ( Hehe, die goede ouwe DOS tijd :) )

Ik heb echter geen idee of het een beetje een fatsoenlijke class is, want ik heb hem zelf nog nooit gebruikt.
Staat me toch echt bij dat ik 'm onder VC6 heb gebruikt? :?
Dat meende ik ook maar mijn na wat twijfelen heb ik het toch maar ff getest. ( Met natuurlijk hetzelfde resultaat als .oisyn :) )

Vandaar dat ik een beetje verward was ..... :)


[edit]
Die string class heb je helemaal nix aan. Gewoon zelf doen dus.

[ Voor 50% gewijzigd door farlane op 23-10-2003 21:12 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Ik ga met alle tips aan de slag :)

thanx everybody
Pagina: 1