August 22nd, 2003, 11:28 AM
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?
August 22nd, 2003, 03:45 PM
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?
August 22nd, 2003, 03:58 PM
>> 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.
x = 1234567890
y = x
print x * y
Notice that sample 1 will fail with an overflow error, whereas sample 2 will run just fine.
x = 1234567890
y = long(x)
print x * y
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
August 22nd, 2003, 07:30 PM
Sorry, but I'm just not getting the same results as you, Scorps.
I haven't yet been able to get an OverflowError.
>>> sys.maxint * sys.maxint
>>> sys.maxint * long(sys.maxint)
August 23rd, 2003, 01:18 AM
I know I'm kinda strange and bable about crap but on occassion I'm worth listening to .. maybe.
Have fun guys,
August 25th, 2003, 06:35 AM
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.
August 25th, 2003, 08:25 AM
Good. Python is moving further away from type-dependency. With the revised division, it'll get even better.
August 25th, 2003, 10:03 AM
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