-
Binär rechnen & Ergebnis binär anzeigen
Tachchen zusammen,
Ich muss in einem Programm binär rechnen..
DTEST1 S 9B 0
DTEST2 S 9B 0
DTESTERG S 9A
In Testerg soll bitte das Ergebnis aus Test1 - 2*Test2 stehen.
Alles eigentlich ganz einfach... dachte ich.
Eval test1 = test1 - test2
Eval test1 = test1 - test2
eval testerg = %char(test1) oder auch move test1 testerg
Ich initialisiere die Felder derzeit mit 111111111 und 000000001
Wollte also eigentlich 111111101 herausbekommen.
Habe derzeit 11111109 als Ergebnis.
Ich will aber in testerg die Binäre zeichenfolge haben also nur Einsen und Nullen.
Googlen hat mich auch nicht wirklich weitergebracht...
Also frage ich einfach mal die geballte Kraft des Forums
Gruss
Rince
-
Da hilft nur eine C-Funktion:
"sprintf(ziel, '%X', Zahl)".
Oder als SQL:
/exec sql
c+ set :ziel = hex(:Zahl)
c/end-exec
-
Hi,
vielen Dank für die schnelle Hilfe...
aber nun steht in meiner Variable:
TESTERG = '000001FE '
laut Debug.
Irre ich mich oder ist das der Hex Wert ?
Ich wollte aber den Binär wert.
Bitte sagt mir meinen Denkfehler.
Gruss
Rince
-
binär
 Zitat von Rincewind
Hi,
vielen Dank für die schnelle Hilfe...
aber nun steht in meiner Variable:
TESTERG = '000001FE '
laut Debug.
Irre ich mich oder ist das der Hex Wert ?
Ich wollte aber den Binär wert.
Bitte sagt mir meinen Denkfehler.
Gruss
Rince
hello,
1F ist der Wert 1 im positiven und 1D im negativen Sinne als hexwert dargestellt...
du wirst nicht drumrumkommen dir selber ne kleine routine zu schreiben um den binärwert so darstellen zu können wie du es möchtest...
das wurde weiter oben schon gesagt..
das umrechnen geht recht einfach denke ich.
k.
-
??? Das wurde weiter oben schon gesagt ???
Naja wie dem auch sei...
1FD ist umgerechnet die 509 die ich als ergebnis wollte
Da ich dann eh nur diesen HexWert wieder in Binär umrechnen müsste...
kann ich auch gleich eine Binäre Rechensubroutine schreiben. Derzeit muss ich ja eh immer nur 1 abziehen.
Danke trotzdem.. und wenn jemand einen schönen (möglichst eleganten) weg findet.. bin ich immer gerne bereit den einzubauen.
Gruss
Rince
-
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
-
Hallo Rince!
Habe leider im Moment keine Lösung, allerdings einen kleinen Hinweis bezüglich der B-Felder: Diese Definition (9B 0) betrifft nur die interne Darstellung dieser Variablen, nicht jedoch die Wertezuweisungen. Wenn du also diese Felder mit 111111111 und 000000001 initialisierst, dann sind dies dezimale Werte und keine binären! Nur im Arbeitsspeicher werden die Werte der Variablen dann binär (bzw. hexadezimal) abgelegt - im Gegensatz zur gepackten oder gezonten Darstellung. Somit ist auch richtig, dass bei deiner Rechnung 11111109 (dezimal) herauskommt, da ja alles als Dezimalzahlen interpretiert wird ... 
Vielleicht könnten dir für deine Anforderung aber die Befehle BITON, BITOFF und TESTB irgendwie hilfreich sein?
Viele Grüße
Jürgen
-
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.
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