-
Achso !
Wie wärs mit der Definition:
d MyChar 4
d MyBin 10I 0 overlay(MyChar)
Ich dachte du wolltest den expandierten, also druckbaren Hexwert.
-
Hmm,
so richtig kriege ich das immer noch nicht hin.
Ich bekomme egal was ich probiere nie eine einfach Zahlenfolge ala 0101 heraus.
Eventuell drücke ich mich ja auch unklar aus...
Also:
Ich will an ein PC Programm einen Zähler übermitteln.
Diese PC Programm erwartet den Zähler in Binärem Format
Sprich: 1 = 000 000 001
2 = 000 000 010
3 = 000 000 011
etc.
Also wollte ich nur immer 1 auf den Wert draufaddieren in Binär und dann das Ergebnis in eine Alpha variable packen (ich muss einen String per Socket übermitteln)
Und mit den oben genannten Sachen bekomme ich immer nur seltsame Werte heraus die in den Millionen liegen obwohl ich als Ergebnis halt 001 oder 010 erwarte.
Ich gehe nun erstmal dazu über mir einfach selbst einen Binärzähler zu bauen.. nur sollte wem was einfallen dann freue ich mich auf die Lösung, denn so kann es ja eigentlich nicht völlig korrekt sein.
Dank euch trotzdem
Rince
-
binär
 Zitat von Rincewind
.........
Ich gehe nun erstmal dazu über mir einfach selbst einen Binärzähler zu bauen.. nur sollte wem was einfallen dann freue ich mich auf die Lösung, denn so kann es ja eigentlich nicht völlig korrekt sein.
Dank euch trotzdem
Rince
hello,
da gabs ja vor ewigkeiten schon in der qusrtool das cmd CVTDECBIN4 bzw. CVTBIN4DEC für umgekehrt...
wenn du das bzw. die sourcen bei dir noch findest kannst du dir evtl. etwas arbeit sparen...
um eine zahl der größenordnung 1099511627775 abzudecken, brauchts 40 stellen binär wenn ich richtig gezählt habe...
viel spass beim basteln des binärzählers...
kuempi
-
Das Binärfeld auf der AS/400 entspricht doch einem Integer oder Long auf dem PC. Kannst du da nicht den Wert direkt übergeben ohne Charakter-Feld? (Habe noch nix mit Sockets gemacht, deshalb ehr eine Frage, als eine Antwort)
Bruno
-
binärzahl
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.
-
posten
 Zitat von Rincewind
@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/m...1/1-9regel.htm
have fun
kuempi
-
Naja, dann will ich mal nicht so sein:
Code:
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.
Last edited by Fuerchau; 10-03-05 at 11:36.
-
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
Similar Threads
-
By cc in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 25-01-07, 09:29
-
By lyrics in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-08-06, 12:10
-
By Rico in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 06-07-06, 16:25
-
By dino in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 30-05-06, 13:38
-
By becama in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-05-06, 19:46
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks