Hallo,

gesetzt der Fall, Du hast ein Feld in dem z.B. x'FF' drinsteht und Du möchtest diesen Wert in numerisch konvertieren, also das Ergebnis soll 255 sein, dann ist das Ganze einfach:

Der Ansatz von E305GL war schon mal gut!
Nur man sollte numerische Felder in ILE RPG niemals Binär (Datentyp B), sondern immer Integer (Datentyp I oder U definieren). Der Grund liegt darin, dass Binär-Felder in gepackte Felder konvertiert werden. Um einen Feld überlauf zu vermeiden, wird das Feld so definiert, dass nicht der komplette Range abgedeckt werden kann. In einem einzigen Byte können binär 256 unterschiedliche Werte hinterlegt werden (0-255 oder -128 bis +127). Ein Feld, das als 2 B0 definiert wurde könnte damit einen Range von 0-65535 oder -32768 bis +32767 abdecken. Durch die Konvertierung in gepackt kann es nur Werte zwichen -9999 und +9999 aufnehmen. Integer Felder werden NICHT konvertiert und können somit den kompletten zulässigen Range abdecken.

Ist also der Hex-Wert bekannt und steht in einem alphanumerischen String, kann dieser einfach über eine Datenstruktur konvertiert werden.
Etwa so:
PHP-Code:
D DSHex           DS                   inz            
D  MyInt                         3U 0                 
D  MyAlpha                       1A    Overlay
(MyInt

 /
Free
  MyAlpha 
x'0F';     
  
Dsply MyInt;
  
MyAlpha x'FF';
  
Dsply MyInt;
  *
InLR = *ON
 
/End-Free 
... übrigens 1 Byte Binär entsprich 3U 0 oder 3I 0, 2 Byte Binär entspricht 5U 0 oder 5I 0, 4 Byte Binär 10U 0 oder 10I 0 und 8 Byte Binär entspricht 20U 0 oder 20I 0. Die Länge richtet sich immer nach der Anzahl der Ziffern, die der Maximal-Wert, der in dem Feld gespeichert werden kann benötigt!!!
Birgitta