So obvious! Thanks Minh for pointing it out to me. In the meantime I've written a function that does the same but it was very inefficent.
Regards, duro > Yes, there two ways to do what you want. > > > I've generated some random bits by calling > > blum_blum_shub(length,lbound,ubound) but I need the binary result (or > > rather the StringMonoidElement) to be represented as a decimal number. > > Here are two ways, assuming that you want the bits in little-endian > order, i.e. you read the bits from right to left in increasing order > of powers of 2. > > sage: version() > 'Sage Version 4.5.3, Release Date: 2010-09-04' > sage: from sage.crypto.stream import blum_blum_shub > sage: b = blum_blum_shub(length=6, lbound=10**4, ubound=10**5); b > 100110 > sage: type(b) > <class 'sage.monoids.string_monoid_element.StringMonoidElement'> > sage: # read in little-endian order > sage: # conversion using Python's built-in int() > sage: int(str(b), base=2) > 38 > sage: # conversion using Sage's built-in Integer() > sage: Integer(str(b), base=2) > 38 > > Now assume you read the bitstring as output by blum_blum_shub() in > big-endian order, i.e. from left to right in increasing order of > powers of 2. You simply convert the bitstring to a string, reverse > that string, and apply any of the above two methods. > > sage: # reversing a string > sage: str(b) > '100110' > sage: str(b)[::-1] > '011001' > sage: # read in big-endian order > sage: int(str(b)[::-1], base=2) > 25 > sage: Integer(str(b)[::-1], base=2) > 25 > > -- > Regards > Minh Van Nguyen -- To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org