A lot of my students have the same problem so I explain it this way:
The x2y functions all take character strings. If that character string is a valid value in the base indicated by the 'x' in the function name, it will be converted into a string representation of that value (if possible) in the 'y' base.
A common problem is when you want to find the decimal equivalent of a hex value. The temptation is mighty strong to code dec=X2D('2FC8'x). As soon as you encode the hex value _as_a_hex_constant_ Rexx dutifully converts that string into its internal representation, and that is the value that X2D() sees.
Basically, I tell them not to over-think the problem. It's simply string-in, string-out, and the name tells you what Rexx expects and what he will return.
-Chip- On 4/30/10 14:42 Kris Buelens said:
Often it is not obvious which "x2y" conversion function has to be used. For example; do you need X2C or C2X? Therefore I wrote an XTOX EXEC that tries all REXX conversions and show the result. It is part ofhttp://www.vm.ibm.com/download/packages/descript.cgi?REXXG For example XTOX 56 displays: C2D(56)=13622 =X'3133363232' C2X(56)=3536 =X'33353336' D2C(56)=8 =X'38' D2X(56)=38 =X'3338' X2C(56)=V =X'56' X2D(56)=86 =X'3836' X2B(56)=01010110 =X'3031303130313130' B2X(56)=impossible 2010/4/30 Bruce Roy <[email protected] <mailto:[email protected]>> Try using the X2C REXX builtin function. For example, String = X2c(PRK) If the value of PRK will ever have a length different than 4 (which seems to be required by your logic), check the X2c documentation for the length operand. ----------------------------- From: The IBM z/VM Operating System [mailto:[email protected] <mailto:[email protected]>] On Behalf Of Horlick, Michael Sent: Friday, April 30, 2010 9:37 AM To: [email protected] <mailto:[email protected]> Subject: How to work with hex in REXX Greetings, I have a character field for example 0001A735 (PRK) I have record like this ‘DATA DATA YYYY’. I want to replace ‘YYYY’ with x’0001A735’. Tried :String = "'"||PRK||"'x" JCL.J = Overlay(String,Record,WORK,4)Where work = position of ‘YYYY’ in record Not working. Mike Horlick Conseiller CGI Gestion Intégrée des Technologies 1350 Boul. René-Lévesque Ouest Montréal, Qc, H3G 1T4 -- Kris Buelens, IBM Belgium, VM customer support
