-
Ein Binchar feld bitweise füllen
Hallo,
Ich kämpfe momentan mit folgendem Problem.
Ich muss ein Feldtyp von binchar (8 byte) ab der vierzigste bit mit etwas füllen(z.b mit integer 12)
Für jede Hilfe bin ich Dankbar
-
Jedes Byte ist vom Typ UINT(3) und kann dann mit den Werten aus beliebigen Kombinationen von 2er Potenzen 1, 2, 4, 8 , 16, 32, 64, 128 gefüllt werden.
Nun must du nur noch abzählen und die passenden Werte setzen.
dcl-ds;
v1 uint(3) inz 1;
v1 uint(3) inz 2;
v1 uint(3) inz 4;
v1 uint(3) inz 8;
v1 uint(3) inz 16;
v1 uint(3) inz 32;
v1 uint(3) inz 64;
v1 uint(3) inz 128;
v uint(3) dim(8) pos(1);
end-ds;
dcl-ds;
bytes8 char(8);
byte uint(3) dim(8) pos 1;
end-ds;
dcl-s bytepos uint(3);
dcl-s bitpos uint(3);
bytepos = %int(Bits / 8) + 1;
bitpos = %rem(Bits:8) + 1;
Byte(bytepos) += v(bitpos); // Bit setzen
Byte(bytepos) -= v(bitpo); // Bit löschen
Oder klassisch mit BITON und BITOFF bzw. %bitand() und %bitnot() => siehe Referenz.
Oder du definierst das Feld als UINT(20) => 8 Bytes und nimmst eine Tabelle mit den 64 Werten.
Um diese nicht ausrechnen zu müssen, kannst du die einer Schleife füllen:
for i=0 to 63;
v(i+1) = 2**i;
next;
Bestimmt fällt da jemandem noch was anderes kompliziertes ein.
-
Vielen Dank für die Antwort
Similar Threads
-
By ora in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 22-06-19, 17:26
-
By _MG_ in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 15-09-17, 15:02
-
By Sebastian85 in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 05-07-17, 13:16
-
By harkne in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 11-04-16, 15:22
-
By TheDevil in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 14-11-13, 08:15
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