10 join 100
1100
   10 join~ 100
1010

R.E. Boss


> -----Oorspronkelijk bericht-----
> Van: [email protected] [mailto:programming-
> [email protected]] Namens Tracy Harms
> Verzonden: vrijdag 15 juli 2011 16:57
> Aan: Programming forum
> Onderwerp: Re: [Jprogramming] Appending two numbers to form a new
> number
> 
> I don't have time to walk through an explanation of this, at the moment,
but
> here's an arithmetic solution (instead of a text-representation solution.)
> 
> 
>    NB. the numbers need not be boxed
>    ]aaa=: 2 7 $ 6 30 1 17 119 118 116 63  2 5 17 103  14   1
>  6 30 1 17 119 118 116
> 63  2 5 17 103  14   1
> 
>    magnitude=: 10^ 1>. [: >. 10^.]
> 
>    magnitude {: aaa   NB. how much to shift each, in this example
> 100 10 10 100 1000 100 10
> 
>    join=: ]+ [* magnitude@]
> 
>    join/ aaa
> 663 302 15 1717 119103 11814 1161
> 
> 
> 
> On Thu, Jul 14, 2011 at 11:49 PM, PackRat <[email protected]> wrote:
> 
> > I wish to append the digits of two numbers to form a new number:
> >  12  345  -->  12345
> >
> > I'm sure this is elementary, but I'm currently stumped.  Here's some
> > data (which in reality would have been read in from a CSV file and
> > then
> > transposed):
> >
> > aa=. 2 7 $ 6;30;1;17;119;118;116;63;2;5;17;103;14;1
> >
> > +--+--+-+--+---+---+---+
> > |6 |30|1|17|119|118|116|
> > +--+--+-+--+---+---+---+
> > |63|2 |5|17|103|14 |1  |
> > +--+--+-+--+---+---+---+
> >
> > Then I pulled out the numeric data pairs, converted them to literals,
> > and appended them:
> >
> > b=. ( ": every 0{aa ) ,. ( ": every 1{aa )
> >
> > 6  63
> > 30 2
> > 1  5
> > 17 17
> > 119103
> > 11814
> > 1161
> >
> > Just for visual purposes here (NOT in J!), I substituted * for spaces,
> > to show what's happening:
> >
> > 6**63*
> > 30*2**
> > 1**5**
> > 17*17*
> > 119103
> > 11814*
> > 1161**
> >
> > However, what I want to end up with is this, no spaces, different
> > lengths:
> >
> > 663
> > 302
> > 15
> > 1717
> > 119103
> > 11814
> > 1161
> >
> > To attempt to do this, I did the following:
> >
> > spc=. ' ' E. every b
> >
> > 0 1 1 0 0 1
> > 0 0 1 0 1 1
> > 0 1 1 0 1 1
> > 0 0 1 0 0 1
> > 0 0 0 0 0 0
> > 0 0 0 0 0 1
> > 0 0 0 0 1 1
> >
> > keepmask=. (0 = spc)
> >
> > 1 0 0 1 1 0
> > 1 1 0 1 0 0
> > 1 0 0 1 0 0
> > 1 1 0 1 1 0
> > 1 1 1 1 1 1
> > 1 1 1 1 1 0
> > 1 1 1 1 0 0
> >
> > I thought that the following would accomplish what I wanted, but it
> > does NOT:
> >
> > nospc=. keepmask # each b
> >
> > +-+-+-+-+-+-+
> > |6| | |6|3| |
> > +-+-+-+-+-+-+
> > |3|0| |2| | |
> > +-+-+-+-+-+-+
> > |1| | |5| | |
> > +-+-+-+-+-+-+
> > |1|7| |1|7| |
> > +-+-+-+-+-+-+
> > |1|1|9|1|0|3|
> > +-+-+-+-+-+-+
> > |1|1|8|1|4| |
> > +-+-+-+-+-+-+
> > |1|1|6|1| | |
> > +-+-+-+-+-+-+
> >
> > Essentially, this puts me right back where I started, without
> > accomplishing anything.  I thought it would be a very straightforward
> > process to append the digits of two numbers--it's sort of the reverse
> > of what was discussed here recently.  The final step, of course, is to
> > convert the new literal back into a number (but that part's easy!).
> >
> > I appreciate any help with this--thanks in advance!
> >
> > Harvey
> >
> > ----------------------------------------------------------------------
> > For information about J forums see
> http://www.jsoftware.com/forums.htm
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to