Thanks Maury. I didn't see anything about this in the part of the GT.M manual I was reading. That makes sense.
Kevin On 9/3/05, Maury Pepper <[EMAIL PROTECTED]> wrote: > Kevin, > > The bit string functions work on a pseudo data type defined in GT.M (ie, this > is a non-standard scheme, thus these are z-functions.) The leading byte is a > value between 0 and 7 and it indicates how many bits in the last byte to > ignore. $c(0,0) creates a bit string of 8 zero bits. The first byte of 0 > indicates that 0 bits in the second byte are ignored, ie all 8 bits are used. > A seven-bit string would be encoded as $c(1,0). A 15-bit string, $c(1,0,0). > Once you create a bit string (using $c(...) or $zbitstr(...) ) the functions > will preserve the data type so you don't really have to think in terms of how > the bit strings are composed. But, read the manual re the length of a result. > > > > ----- Original Message ----- > From: "Kevin Toppenberg" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Saturday, September 03, 2005 9:43 PM > Subject: Re: [Hardhats-members] Bitwise operators in GT.M? > > > > Jim (or anyone else) > > > > I am thinking about writting an UUEncoder in M, so have come back to > > look at this more closely. I've taken a look in the GT.M programmer's > > manual also. > > > > I notice that the $ZBITxx functions are also present in Cache' > > (although apparently depreciated). > > > > There are a couple parts I don't understand. > > First, I don't understand what you are doing with $char(0,X) during > > conversion to to a bit stream. Is this simply to force more bits > > (i.e. 0000000011111111 if X=255)? > > > > Second, you have $ZBITSTR(8,0)=$c(0,0) > > This seems to me to say, create a bitstring of 8 bits, all set to 0. > > Then you have that equal to $char(0,0), which I think is the same as > > $char(0)_$char(0) > > This seems to imply that $char(0) is only 4 bits. How can this be so? > > > > I'm confused. > > Thanks > > Kevin > > > > > > > > On 8/29/05, Jim Self <[EMAIL PROTECTED]> wrote: > >> Greg Woodhouse wrote: > >> >if X and Y represent (unsigned) decimal > >> > integers, does GT.M provide an easy (and efficient) means of carrying > >> > out bitwise operations on X and Y). For example, if X = 12 (binary > >> > 1100)and Y = 49 (binary 110001), I'd expect that > >> > > >> > X bitwise-or Y = 61 (binary 111101) > >> > > >> > > >> > 1 1 0 0 0 1 > >> > 1 1 0 0 > >> > ------------ > >> > 1 1 1 1 0 1 > >> > >> Bit functions in GT.M appear very similar to those in DTM, and I assume, > >> in Cache'. They > >> are oriented around doing fast tests on very long bitstrings. These might > >> be stored in a > >> database as a means of representing membership of data records in various > >> sets. > >> > >> According to the GT.M programmer documentation, bitstrings have a leading > >> byte that gives > >> the count of invalid bits at the end of the bitstring. As Bhaskar > >> indicates, there is no > >> automatic conversion of numerics to bitstrings. There are examples of use > >> in the > >> documentation that show a couple of different conversion methods. > >> > >> The functions are $ZBITAND(), $ZBITCOUNT(), $ZBITFIND(), $ZBITGET(), > >> $ZBITLEN(), > >> $ZBITNOT(), $ZBITOR(), $ZBITSET(), $ZBITSTR(), $ZBITXOR(). > >> > >> $ZBITSTR(bits,state) will create a bitstring with a given number of bits > >> all set to true > >> or false according to the value of state. The maximum number of bits is > >> 253,952. > >> > >> $ZBITSTR(8,0)=$c(0,0) > >> $ZBITSTR(16,0)=$c(0,0,0) > >> $ZBITSTR(24,0)=$c(0,0,0,0) > >> $ZBITSTR(32,0)=$c(0,0,0,0,0) > >> ... > >> > >> If X is an integer in the range 0-255 (8-bit value) then one way of > >> converting X to a > >> bitstring would be $c(0,X). > >> > >> ;testing zbit* functions > >> > >> s x=12,y=49 > >> s bitstr=$zbitOr($c(0,x),$c(0,y)) > >> zwr bitstr > >> > >> bitstr=$C(0)_"=" > >> > >> w $a(bitstr,2) > >> > >> 61 > >> > >> > >> --------------------------------------- > >> Jim Self > >> Systems Architect, Lead Developer > >> VMTH Computer Services, UC Davis > >> (http://www.vmth.ucdavis.edu/us/jaself) > >> > >> > >> ------------------------------------------------------- > >> SF.Net email is Sponsored by the Better Software Conference & EXPO > >> September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices > >> Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA > >> Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > >> _______________________________________________ > >> Hardhats-members mailing list > >> [email protected] > >> https://lists.sourceforge.net/lists/listinfo/hardhats-members > >> > > > > > > ------------------------------------------------------- > > SF.Net email is Sponsored by the Better Software Conference & EXPO > > September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices > > Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA > > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > > _______________________________________________ > > Hardhats-members mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/hardhats-members > > > > > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices > Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > _______________________________________________ > Hardhats-members mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/hardhats-members > ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ Hardhats-members mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hardhats-members
