View previous topic :: View next topic
|
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 |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
nice theoretical homework problem. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
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
Superior Member
Joined: 14 Mar 2007 Posts: 10873 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 |
|
|
|