View Full Version : Binär rechnen & Ergebnis binär anzeigen
kuempi von stein
09-03-05, 14:44
also das ist wirklich kein akt ne dezimalzahl als binärstring auszugeben...
ich hab inclusive wertzuweisung (init) vorher und dsply nach bildschirm und last record setzen mit return 18 zeilen rpg (old style).
will sagen wir reden hier von nem knackigen fünfzeiler.
k.
@Kuempi
Na dann ist es ja für dich ein leichtes diesen 5-Zeiler hier zu posten. (Mir würde auch der 18 zeilen Old RPG Style reichen)
@Bruno Bei der Socketübergabe schicke ich über bestimmte TCP-IP verbindungen Strings, ich brauche dafür also Alphazeichen.
kuempi von stein
09-03-05, 15:28
@Kuempi
Na dann ist es ja für dich ein leichtes diesen 5-Zeiler hier zu posten. (Mir würde auch der 18 zeilen Old RPG Style reichen)
@Bruno Bei der Socketübergabe schicke ich über bestimmte TCP-IP verbindungen Strings, ich brauche dafür also Alphazeichen.
*seufz*
hey ein klein wenig solltest du dir auch den kopf zerbrechen finde ich.
ich mag ja die leute gar nicht die hier nach lösungen schreien und alles vorgekaut haben wollen.
du arbeitest aber recht aktiv hier mit deshalb gilt das nicht für dich.
deshalb kriegste nicht alles aber das meiste:
C 1 DO 40 F
C ZAHL DIV 2 ZAHL
C MVR REST
C 41 SUB F FX
C MOVE REST OUT,FX
C ZAHL IFEQ 0
C ITER
C ENDIF
C ENDDO
zahl ist die dezimale zahl die umgesetzt werden soll und out dann der ausgabestring später. (den hatte ich als element 40 / 1 definiert)
ich denke mal den rest schaffst du alleine...
die logik habe ich aus nem internetreferat von hier:
http://www.metalltechnik-online.de/mathe-klasse1/1-9regel.htm
have fun
kuempi
Naja, dann will ich mal nicht so sein:
hbnddir('QC2LE') dftactgrp(*no) actgrp(*caller)
d strtol pr 10I 0 extproc('strtol')
d nptr * options(*string) value
d endptr * value
d base 10I 0 value
d itoa pr * extproc('__itoa')
d ival 10I 0 value
d strptr * value
d base 10I 0 value
d MyInt s 10I 0
d MyStr s 34 inz('10010001')
d MyPtr s *
c/free
MyInt = strtol(MyStr: %addr(MyPtr) :2) + 1;
itoa(MyInt: %addr(MyStr): 2);
MyStr = %subst(MyStr:1:%scan(x'00':MyStr)-1);
return;
/end-free
Die Funktion "strtol" konvertiert einen String in einen Long, wobei als Basis 2 - 36 angegeben werden kann.
Die Funktion "itoa" macht das Ganze dann umgekehrt.
Die letzte Anweisung ist nur für das Entfernen des Nul-Zeichens.
Okay Okay :-)
Da lag wohl ein Missverständnis meinerseits vor...
Dachte du hättest einen 5-zeiler für das Binäre rechnen & anzeigen
Diese Art der Umsetzung in eine binäre Zahl habe ich auch selbst entwickeln können (schliesslich schimpft man sich ja selbst Programmierer).
@Fuerchau
Ich sehe immer mehr und mehr dass ich C lernen sollte... Ich werde deinen Sourcecode einfach mal so ausprobieren, wenn es funktioniert werde ich mich mal bemühen immer mehr und mehr von C zu begreifen, scheint ja doch recht praktisch zu sein.
Also:
THX @all
Gruss
Rince