Assume x=a+b+c and the result is 12345. If you want z to contain x'00003039' then...
z = x2c(d2x(x,8)) The inner d2x() creates a hexadecimal string of "00003039". The outer x2c() converts it to the "character" form of the string. And, the function to which you refer that works differently is x2d(). If you only specify the variable field, x2d() assumes it is unsigned. If you add a length parm, it assumes it is signed. if x=FF, then x2d(x) gives 255, but if you use x2d(x,2), you get -1. Hope this helps. Chuck On Thu, Jul 3, 2025 at 10:53 AM Rupert Reynolds <[email protected]> wrote: > I tried d2c(). The c2x() is just to show what the 4 bytes in the results > are. > > say c2x(d2c(256,4)) > 00000100 > > I always forget which, but one of the conversion functions behaves > differently depending on the arguments you pass. One version is for > unsigned binary and the other for signed. > > n.b. Arithmetic ends up as a decimal number, stored in string > representation. > > > On Thu, 3 Jul 2025 at 16:15, Schmitt, Michael <[email protected]> > wrote: > > > I haven't tested this, but try: right(variable, 4, '00'x) > > > > -----Original Message----- > > From: IBM Mainframe Discussion List <[email protected]> On Behalf > > Of Radoslaw Skorupka > > Sent: Thursday, July 3, 2025 10:08 AM > > To: [email protected] > > Subject: REXX leading zeros > > > > They say there are no stupid questions... > > > > > > I have the following statement in REXX code (linkpgm): > > some_parm = '00000100'x > > That means 256 decimal. > > However I want to replace '00000100' with some variable, a result of > > some calculations > > Let's imagine, x=a+b-c > > > > How to transform x to a proper format for some_parm? > > Note: I have to keep the length of the variable, so '100' is not a > > solution. > > > > I've tried the following: > > x=a+b-c /*let's say x=110+156-10 */ > > x2=d2x(x) /*x2 is 100, no leading zero's*/ > > x3=RIGHT(x2,8,0) /* now x3 is 00000100, but it is text string */ > > x4=x2c(x3) /* x4 consist of 4 bytes, characters are > > unprintable, but it is '00000100'x */ > > > > It works, but isn't it reinventing the wheel? That means, am I missing > > some simpler way? > > > > -- > > Radoslaw Skorupka > > Lodz, Poland > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to [email protected] with the message: INFO IBM-MAIN > > > > > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to [email protected] with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
