[delphi] integer representeren als char

Pagina: 1
Acties:
  • 132 views sinds 30-01-2008
  • Reageer

  • wizl
  • Registratie: Maart 2001
  • Laatst online: 27-02-2023
Hoe kan ik in delphi een integer omzetten naar een char (en weer terug)? (n.b. GEEN IntToStr :) )

Ik bedoel dus het volgende. Een integer wordt vertegenwoordigd door 4 bytes. Een char is 1 byte. Hoe kan ik nu dus het getal 4096 representeren als een reeks char's?

Verwijderd

4096 = 00 00 10 00 hex , plak chr(0)+(0)+($10)+(0) achter elkaar en je hebt 4096 als chars... wat je er mee wilt is mij een raadsel maar das een ander probleem >:)

  • wizl
  • Registratie: Maart 2001
  • Laatst online: 27-02-2023
Het ging nog even over die codering van gisteren :P

Ik heb nu dus een getal, dat ik ergens moet wegschrijven als string (er even vanuit gaand dat dat de enige manier is). Stel dat het getal 15898233423422 is, dan kost me dat (ff. gauw tellen) 14 char's (bytes). Als ik dezelfde integer als char's kan 'representeren' moet ik met minder ruimte uitkomen, toch?

  • Killemov
  • Registratie: Januari 2000
  • Laatst online: 11-09 10:38

Killemov

Ik zoek nog een mooi icooi =)

Op woensdag 24 oktober 2001 11:54 schreef wizl het volgende:
Hoe kan ik in delphi een integer omzetten naar een char (en weer terug)? (n.b. GEEN IntToStr :) )

Ik bedoel dus het volgende. Een integer wordt vertegenwoordigd door 4 bytes. Een char is 1 byte. Hoe kan ik nu dus het getal 4096 representeren als een reeks char's?
Eigenlijk niet! Char != Byte. Tuurlijk worden beide misbuikt om elkaar te representeren. Als je niets aan uitvoer (scherm/printer) hoeft te produceren kan het wel. Je moet dan een rijtje ands en shifts uitvoeren. voorbeeld: (getal and $FF000000) >> 24 (Zet het resultaat dan liever wel in een byte)

Als je toch uitvoer moet hebben -> Hex!

Probeer nou niet toch de bytes naar het scherm of naar de printer te sturen ... dat gaat mis.

Hey ... maar dan heb je ook wat!


  • Killemov
  • Registratie: Januari 2000
  • Laatst online: 11-09 10:38

Killemov

Ik zoek nog een mooi icooi =)

Op woensdag 24 oktober 2001 12:07 schreef wizl het volgende:
Het ging nog even over die codering van gisteren :P

Ik heb nu dus een getal, dat ik ergens moet wegschrijven als string (er even vanuit gaand dat dat de enige manier is). Stel dat het getal 15898233423422 is, dan kost me dat (ff. gauw tellen) 14 char's (bytes). Als ik dezelfde integer als char's kan 'representeren' moet ik met minder ruimte uitkomen, toch?
Juist ja: Hex ... dan kun je een long representeren in 8 chars. $FFFFFFFFF ... wel een beetje oppassen met (un)signed.

Hey ... maar dan heb je ook wat!


  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 20:57

Knutselsmurf

LED's make things better

En anders een beetje spelen met typecasting en pointers enzo.

- This line is intentionally left blank -


  • Mart!
  • Registratie: Februari 2000
  • Laatst online: 17-09 14:40
In Pascal was het altijd zo, dat als ik een integer wegschreef naar een binairy file, dat deze ook maar 4 bytes in beslag nam? Daar hoefde je dat zelf niet te doen. Is dit bij delphi niet ook zo?
dat ik ergens moet wegschrijven als string
(er even vanuit gaand dat dat de enige manier is).
Of je nou een string weg schrijft van 4 karakters of een integer, ze zouden als mijn bovenstaande verhaal opgaat, allebei dus 4 bytes innemen. Ik zie dus geen voordeel...
Pagina: 1