|
|
| Author |
Message |
dalib Currently Banned New User
Joined: 26 Jul 2008 Posts: 2 Location: hyderabad
|
|
|
|
I need the difference between two alphanumeric numbers.
like if
temp-num1 = "ABCDEF"
and
temp-num2 = "ABCDEH"
I need the temp-num2 - temp-num1 to be stored in third numeric veeriable.
like
temp 9(6).
compute temp = temp-num2 - temp-num1
but since temp-num2 and temp-num1 are alphanumeric
so is there any way to get the difference between these two. |
|
| Back to top |
|
 |
References
|
|
 |
dbzTHEdinosauer
Senior Member
Joined: 20 Oct 2006 Posts: 1641 Location: germany
|
|
|
|
| nice theoretical homework problem. |
|
| Back to top |
|
 |
dick scherrer
Global Moderator
Joined: 23 Nov 2006 Posts: 8770 Location: 221 B Baker St
|
|
|
|
Hello,
| Quote: |
| so is there any way to get the difference between these two. |
Of course there is. . .
Now is where you have to do some work. Post the rule(s) describing how to calculate the difference. Also, rather than the "simple" example you've used (you'd expect a difference of 2, right?) you need to post what you would expect the difference between "AVRDEW" and "JYREXS" to be and how you determined that difference. Once the rule is understood, coding might follow.
Another thought is that you might describe what you are trying to accomplish and someone may have a suggestion.
Please do not post in both forums. . . This topic is locked. |
|
| Back to top |
|
 |
enrico-sorichetti
Global Moderator
Joined: 14 Mar 2007 Posts: 3183 Location: italy
|
|
|
|
given the following digits sequence
arbdgts = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
jyrexs - avrdev = 9301IX
happy multibasing computations
here is the rexx to do it
| Code: |
#! /bin/rexx
/*REXX- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
/* */
/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
Trace "O"
OPTIONS "STRICT_WHITE_SPACE_COMPARISONS"
numeric digits 64
arbdgts = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
n2 = to_dec("AVRDEV")
c2 = to_arb(n2)
say c2
n1 = to_dec("jyrexs")
c1 = to_arb(n1)
say c1
nx = n1 - n2
diff = to_arb(nx)
say "jyrexs - avrdev = " diff
exit
to_dec:procedure expose arbdgts
trace "O"
parse upper arg arbn
base = length(arbdgts)
mult = 1
decn = 0
do d = length(arbn) to 1 by -1
work = substr(arbn,d,1)
decn = decn + mult * ( pos(work,arbdgts) - 1 )
mult = mult * base
end
return decn
to_arb:procedure expose arbdgts
trace "O"
parse upper arg decn
base = length(arbdgts)
arbn = ""
do while ( decn >= base )
work = decn // base
decn = decn % base
arbn = substr(arbdgts,work+1,1) || arbn
end
arbn = substr(arbdgts,decn+1,1) || arbn
return arbn
|
|
|
| Back to top |
|
 |
Moved: Mon Jul 28, 2008 4:14 am by dick scherrer From Mainframe COBOL to Interview Questions |
|
|