Python 2 has two integer types: int, which is a signed integer whose size equals your machine's word size (but is always at least 32 bits), and long, which is unlimited in size.

Python 3 has only one integer type, which is called int but is equivalent to a Python 2 long.

Answer from Taymon on Stack Overflow
🌐
w3resource
w3resource.com › python-exercises › python-basic-exercise-127.php
Python: Check whether an integer fits in 64 bits - w3resource
# Assign the integer value 30 to ... ** 63).bit_length()) # Print the bit length of the maximum 64-bit signed integer (2^63 - 1). print((2 ** 63).bit_length()) ... Write a Python program to check if an integer fits in ...
Discussions

How can I use 64-bit integer in Python 3? - Stack Overflow
This HackerRank problem Mini-Max Sum requires me to use 64-bit integer. Hints: Beware of integer overflow! Use a 64-bit integer to store the sums. How can I initialize and implement that in python3? More on stackoverflow.com
🌐 stackoverflow.com
How best to store millions of pairs of 64 bit integers to save space?
5 million integers in 64 bit, is 38 MB. You should be in the billions before you need to even worry about RAM usage if you're using numpy. There's a ~5x penalty on RAM using stock python. Numpy does have set operations. Just append a big long list and maybe squash it every so often. More on reddit.com
🌐 r/learnpython
70
14
November 27, 2024
Is there any way to force Python to use 64 bit integers on Windows? - Stack Overflow
I’ve noticed that whenever any integer surpasses 2^31-1 my number heavy code suffers a large slowdown, despite the fact I’m using a 64 bit build of Python on a 64bit version of Windows. This seems ... More on stackoverflow.com
🌐 stackoverflow.com
Use 64-bit integers for bit counts
Some internal C functions represent the number of bits in the Python integer as size_t or Py_ssize_t. It is fine on 64-bit platforms, where you need exbibytes of memory to get an overflow error. Bu... More on github.com
🌐 github.com
3
July 8, 2024
🌐
Librarycarpentry
librarycarpentry.github.io › library-python › 03-data-types-and-format
Python for Librarians: Data Types and Formats
August 1, 2018 - The type int64 tells us that Python is storing each value within this column as a 64 bit integer.
🌐
Reddit
reddit.com › r/learnpython › how best to store millions of pairs of 64 bit integers to save space?
r/learnpython on Reddit: How best to store millions of pairs of 64 bit integers to save space?
November 27, 2024 -

I have millions of pairs of 64 bit integers I want to put into a set. Speed and space are important to me.

I could put tuples of python ints into the set but python ints use a lot more than 64 bits each. numpy has the type uint64 but I can’t add numpy arrays to a set afaik.

I will be performing a lot of set add, query and remove operations which I need to be fast.

🌐
NumPy
numpy.org › doc › stable › user › basics.types.html
Data types — NumPy v2.5 Manual
July 17, 2019 - There are 5 basic numerical types ... is the number of bits that are needed to represent a single value in memory. For example, numpy.float64 is a 64 bit floating point data type....
Find elsewhere
🌐
Quora
quora.com › How-does-Python-deal-with-integers-larger-than-64-bits
How does Python deal with integers larger than 64 bits? - Quora
Answer (1 of 4): However, just because that's what can be done in a single operation doesn't mean you can't go beyond that by making things more complicated. You just perform the extra steps in software, chaining together multiple values to represent it. There exist libraries for this in many lan...
🌐
GitHub
github.com › python › cpython › issues › 121485
Use 64-bit integers for bit counts · Issue #121485 · python/cpython
July 8, 2024 - But on 32-bit platform you can create an integer objects that has a size of just 0.5 GiB. This problem can be solved if always use 64-bit integers (uint64_t or int64_t) for bit counts.
Author: python
🌐
Python.org
discuss.python.org › core development
Imposing a hard limit on Python integers - Core Development - Discussions on Python.org
August 29, 2024 - I propose to impose hard limit of 2^{63}-1 or 2^{64}-2 bits for Python integers. With such limit (if forbid creation larger integers even if the size in bytes can fit in 64 bits) the number of bits can always be expressed as 64-bit integer (signed ...
🌐
Python Tutorial
pythontutorial.net › home › advanced python › python integers
An Essential Guide to Python Integers
March 27, 2025 - Instead, Python uses a variable number of bits to store integers. For example, 8 bits, 16 bits, 32 bits, 64 bits, 128 bits, and so on.
🌐
Reddit
reddit.com › r/python › how can python deal with bigger numbers than sys.maxint?
r/Python on Reddit: How can python deal with bigger numbers than sys.maxint?
June 13, 2015 -

So this is my system's biggest integer it can work with

>>> import sys
>>> print sys.maxint
9223372036854775807

But python can easily work out

>>> sys.maxint**2
85070591730234615847396907784232501249L

How is that possible?

Top answer
1 of 5
11
sys.maxint is basically the size of a 64 bit integer (on 32 bit platforms, it'll be 32 bits). That's the size that your computer can work with natively - performing adds / multiplies etc in a single operation. However, just because that's what can be done in a single operation doesn't mean you can't go beyond that by making things more complicated. You just perform the extra steps in software, chaining together multiple values to represent it. There exist libraries for this in many languages - python just supports this type of integer natively, and handles the details of the implementation transparently. Eg. once the size goes beyong 264, you can allocate a bigger chunk of memory - 16 bytes, rather than the 8 for a single 64 bit value, say. The high bits get stored in the first, and the low bits in the second. When you want to add 2 of these together, you basically do the same thing you'd do when you add numbers on paper: First add the two low bit values together. The result becomes the new low-bits of the number. If there was an overflow (ie. the result was bigger than 264), then note that you need to carry an extra 1 to the high bits. Now add the two high-bit values together. Add 1 if we need to carry from the low bits. If this overflows as well, we've exceeded the 128 bits we allocated. So enlarge the memory we're using again (eg. to 192 bits), and store 1 in the new high-bits. And so on. There are a few additional complications around signedness, and multiplication is a bit more complex, as python uses a more advanced algorithm than the naive one for that, but that's the basic idea. Just as it'll add more memory when you append to a list beyond what it can store, it'll do the same when an integer gets too big to fit what was allocated for it. In python2, there was actually a noticable difference between native-length integers (ie <64 bits) and "long integers" (ie. when it starts using extra words), though this has been minimised in recent versions to the point that it's mostly transparent (the difference is that the type will be "long", rather than "int", and an "L" suffix is appended to the repr). In python3, the distinction vanishes completely, with all this handled behind the scenes without leaking the details of how it's actually being stored to the user.
2 of 5
3
Imagine you had a computer that couldn't store any numbers bigger than 9. You could still represent bigger numbers, by storing a bunch of those digits, and interpreting them as a base-10 number. So if you want to store the number "531", you store [5, 3, 1]. You can do math with these digit strings the same way you'd do it by hand on paper. Python does the same thing to store its numbers. sys.maxint is the biggest number that the computer can hold, but Python can represent bigger numbers by storing a bunch of those numbers in a row, in a base-9223372036854775808 number.
🌐
GitHub
github.com › python › cpython › pull › 121486
gh-121485: Always use 64-bit integers for integers bits count by serhiy-storchaka · Pull Request #121486 · python/cpython
Use 64-bit integers instead of platform specific size_t or Py_ssize_t to represent the number of bits in Python integer. Issue: Use 64-bit integers for bit counts #121485
Author: python
🌐
Deaddabe
deaddabe.fr › blog › 2021 › 05 › 12 › generating-64bit-and-128bit-unique-identifiers-with-python
Generating 64bit and 128bit unique identifiers with Python · deaddabe
May 12, 2021 - We are using little endian encoding for the integer to bytes conversion, because in 2021 all major CPUs are using little endian. This may save some cycles, but Python overhead is probably heavier. ... This looks much like YouTube identifiers! In order to keep efficiency, the random 64 bits unsigned integer should be stored with the associated item, as it will take less memory space than storing the encoded string directly.
🌐
Omz Software
omz-software.com › pythonista › numpy › reference › c-api.dtype.html
Data Type API — NumPy v1.8 Manual
Obviously not all bit-widths are available on all platforms for all the kinds of numeric types. Commonly 8-, 16-, 32-, 64-bit integers; 32-, 64-bit floats; and 64-, 128-bit complex types are available.
🌐
Python
bugs.python.org › issue26423
Issue 26423: Integer overflow in wrap_lenfunc() on 64-bit build of Windows with len > 2**31-1 - Python tracker
This issue tracker has been migrated to GitHub, and is currently read-only. For more information, see the GitHub FAQs in the Python's Developer Guide · This issue has been migrated to GitHub: https://github.com/python/cpython/issues/70610
🌐
GitHub
github.com › fkarb › pythonnet_old › pull › 14
Python3: all integers are now 64 bits integers and so if the target is a 32 bit integer we must always do the conversion by sweinst · Pull Request #14 · fkarb/pythonnet_old
October 2, 2014 - fork of http://sourceforge.net/projects/pythonnet/ - Python3: all integers are now 64 bits integers and so if the target is a 32 bit integer we must always do the conversion by sweinst · Pull Request #14 · fkarb/pythonnet_old
Author: fkarb
🌐
Tenthousandmeters
tenthousandmeters.com › blog › python-behind-the-scenes-8-how-python-integers-work
Python behind the scenes #8: how Python integers work
February 8, 2021 - So, besides a reference count and ... member is a pointer to an array of digits. On 64-bit platforms, each digit is a 30-bit integer that takes values between 0 and 2^30-1 and is stored as an unsigned 32-bit int (digit is a typedef for uint32_t)....