Toon posts:

Octaal rekenen in C#

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

Verwijderd

Topicstarter
Als ik het goed begrijp kan ik niet octaal rekenen in C# of kan iemand het tegendeel bewijzen??

Alvast bedankt.


p.s. Wilde het gebruiken om de unix file permission methode in m'n programma na te bootsen.

Verwijderd

Verwijderd schreef op 25 April 2003 @ 14:48:
Als ik het goed begrijp kan ik niet octaal rekenen in C# of kan iemand het tegendeel bewijzen??

Alvast bedankt.


p.s. Wilde het gebruiken om de unix file permission methode in m'n programma na te bootsen.
Je zou toch gewoon met scanf octale getallen naar decimale getallen kunnen omzetten? Ik weet niet precies hoe het in C# zit, maar scanf of sscanf zou je gewoon moeten kunnen gebruiken.

Edit: en als dat niet kan kan je met substrings werken. Als je bijvoorbeeld 0755 hebt, kan je de 7 eruithalen, (met substr of buf[1] ofzo) en die kan je dan met atoi ofzo naar een integer omvormen.

[ Voor 18% gewijzigd door Verwijderd op 25-04-2003 14:59 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:02
Euh.
scanf is C. Geen C#.

https://fgheysels.github.io/


Verwijderd

whoami schreef op 25 April 2003 @ 14:59:
Euh.
scanf is C. Geen C#.
Weet ik veel. C# zal toch wel iets vergelijkbaars hebben? scanf is trouwens een system-call, niet C-specifiek.

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-08 16:45
Ik denk dat je dat goed begrepen hebt. In de .Net documentatie kom ik alleen bij VB.Net een stukje tegen dat je octal literals in je code kunt gebruiken (bijv. &O5).
Bij Int32.Parse() en Int32.ToString() staan alleen conversie van en naar het decimale en hexadecimale stelsel.
Dat het .Net Framework standaard geen mogelijkheden voor een octale representatie heeft, wil natuurlijk niet zeggen dat je dat zelf niet kunt implementeren. Heel moeilijk is dat niet, waarschijnlijk is het implementeren van een "int Parse(string)" en een "string ToString(int)" methode voldoende.

Verwijderd

Als je UNIX-permissies wilt simuleren hoef je niet echt te rekenen met de octale getallen, en 0755 is niet echt 493, maar slechts een optie om aan te geven wat de permissies zijn. Je hoeft het dus niet echt te converteren, je moet alleen de afzonderlijke getallen eruit halen.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16:32
Verwijderd schreef op 25 April 2003 @ 15:01:
[...]
scanf is trouwens een system-call, niet C-specifiek.
Wat bedoel je hiermee als ik vragen mag?

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

Kijk eens naar Convert.ToString(). Deze kan een integer en base verwachten, en voor octale getallen zul je als base dus 8 moeten gebruiken.

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-08 16:45
Ah dus daar zit 'ie. :D
Met int Convert.ToInt32(string, int) kan je andere kant op.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Verwijderd schreef op 25 april 2003 @ 15:01:
scanf is trouwens een system-call, niet C-specifiek.
Alleen op UNIX e.d. , niet op Windows (wat een redelijke gok lijkt voor het OS van de TS, gegeven C#)

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

Pagina: 1