Page 2 of 2 First 12
  • Jump to page:
    #16
  1. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jul 2003
    Posts
    133
    Rep Power
    11
    My question is this:

    Given the ability transform an integer number into a long integer number, with each value of the long integer number equal to the integer number -- within the range of integer numbers -- and each value of the long integer number equal to the value of the integer number automatically converted to a long integer number without the range of integer numbers; and given that any calculation wherein the integer number and the long integer number both could participate would result in the same value (with in mind that the value-result of a long integer would be the same as the value-result of an integer), to what good use will a "function" to convert (transform) an integer to a long integer be?
    What can you not accomplish without that function?
  2. #17
  3. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    69
    Translating from percivall English... disregard all the crap at the beginning ... the question is what can you not do without the long() function.

    I have no idea (as I said I've never had a cause to use them), long int's must have some advantages over of int's for certain things?

    Like all the type-cast function's it's usefull for converting one type to another (a long int), say you had a string containing numbers and you needed it as a long int for whatever reason it would make sence to just call long on that string wouldn't it?

    Have fun,
    Mark.
  4. #18
  5. Banned ;)
    Devshed Supreme Being (6500+ posts)

    Join Date
    Nov 2001
    Location
    Woodland Hills, Los Angeles County, California, USA
    Posts
    9,607
    Rep Power
    4247
    >> to what good use will a "function" to convert (transform) an integer to a long integer be?
    Let's say you have one fairly large integer, which you intend to multiply with another fairly large integer. If there's a chance that the product of the two integers is larger than what an integer variable can hold, then you'll have an OverflowError. Now let's say you convert one of those numbers to long. Then, the product of a long and an integer will be a long number (which for Python can be as large as the RAM will allow it to be). To illustrate this, consider the following code samples.
    Sample 1:
    Code:
    x = 1234567890
    y = x
    print x * y
    Sample 2:
    Code:
    x = 1234567890
    y = long(x)
    print x * y
    Notice that sample 1 will fail with an overflow error, whereas sample 2 will run just fine.
    Up the Irons
    What Would Jimi Do? Smash amps. Burn guitar. Take the groupies home.
    "Death Before Dishonour, my Friends!!" - Bruce D ickinson, Iron Maiden Aug 20, 2005 @ OzzFest
    Down with Sharon Osbourne

    "I wouldn't hire a butcher to fix my car. I also wouldn't hire a marketing firm to build my website." - Nilpo
  6. #19
  7. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jul 2003
    Posts
    133
    Rep Power
    11
    Sorry, but I'm just not getting the same results as you, Scorps.
    Code:
    >>> sys.maxint * sys.maxint
    4611686014132420609L
    >>> sys.maxint * long(sys.maxint)
    4611686014132420609L
    >>>
    I haven't yet been able to get an OverflowError.
  8. #20
  9. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    69
    ..and that if a number is too long to be an int it's automatically cast as a long..
    I know I'm kinda strange and bable about crap but on occassion I'm worth listening to .. maybe.

    Have fun guys,
    Mark.
  10. #21
  11. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    69
    I was looking around and came accross this page..http://www.python.org/2.2.3/bugs.html

    Apparently between 2.1 and 2.2 some changes were made to overflow on ints.. "Overflowing int operations return the corresponding long value rather than raising the OverflowError exception".. .

    so if your using 2.1 Scorp i can see why you are getting the OverflowError.

    Mark.
  12. #22
  13. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jul 2003
    Posts
    133
    Rep Power
    11
    Good. Python is moving further away from type-dependency. With the revised division, it'll get even better.
  14. #23
  15. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    69
    Definatly a good thing! Were slowly heading towards Python 3 but I think we can expect some great improvments!

    The next major release, Python 2.4 will see another big speed increase, something I'm sure were all looking forward too. But it's too early to tell what else the Python team will pull togther for this release

    Mark.
Page 2 of 2 First 12
  • Jump to page:

IMN logo majestic logo threadwatch logo seochat tools logo