On 3/20/2013 6:22 AM, Steve Comstock wrote:
On 3/20/2013 3:03 AM, Donald Likens wrote:
Has anyone come up with a better way to convert a 64 bit binary number to
decimal then the way I did it?
Here is what I did:
LG R1,WKCELLD
CVDG R1,LONG
* UNPK 0(11,R7),LONG(6) FIRST 6 BYTES ARE ALWAYS ZERO
UNPK 0(11,R7),LONG+5(6)
UNPK 10(11,R7),LONG+10(6)
OI 20(R7),X'F0'
To be precise, you are converting 64bit binary to zoned decimal unedited.
How about:
LG R1,WKCELLD
CVDG R1,LONG
mvc 0(17,R7),edpat
ed 0(17,R7),long
edpat dc x'4020202020202020202020202020202020'
You haven't told us how long the target field pointed
at by R7 is, but it's at least 21 bytes judging by
your OI instruction. So I've just used the first 17
bytes. The field LONG must, of course, be 16 bytes
on a quadword boundary.
Whoops. Coded too fast. LONG being 16 bytes means
it will contain 31 digits, so maybe:
LG R1,WKCELLD
CVDG R1,LONG
mvc 0(32,R7),edpat
ed 0(32,R7),long
edpat dc x'40',31x'20'
Now I hope the area pointed at by R7 is at least 32 bytes long;
or, as you suggested, you could adjust accounting for known
leading zeros.
--
Kind regards,
-Steve Comstock
The Trainer's Friend, Inc.
303-355-2752
http://www.trainersfriend.com
* To get a good Return on your Investment, first make an investment!
+ Training your people is an excellent investment
* Try our tool for calculating your Return On Investment
for training dollars at
http://www.trainersfriend.com/ROI/roi.html
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN