Giá trị int tối đa trong python là gì?

Hướng dẫn này sẽ thảo luận về giá trị số nguyên tối đa trong các phiên bản khác nhau của Python và cách chúng ta có thể lấy nó

Trong Python 2, một số nguyên và một số nguyên dài là các kiểu dữ liệu khác nhau. Một số nguyên có giới hạn từ 231 - 1, nếu giá trị vượt quá giới hạn thì kiểu dữ liệu của biến sẽ tự động chuyển sang long và không có ngoại lệ nào được đưa ra. Khi kiểu dữ liệu biến được chuyển sang kiểu dữ liệu dài, nó có thể lớn bằng khả năng lưu trữ của máy, nghĩa là không có giới hạn rõ ràng về độ dài trong Python 2

Trong Python 3, chúng tôi không có các kiểu dữ liệu số nguyên và dài riêng biệt, điều đó có nghĩa là kiểu dữ liệu biến sẽ không được chuyển đổi sau khi vượt quá giới hạn 231 - 1. Nói tóm lại, số nguyên trong Python 3 hoạt động giống như long trong Python 2 và có thể có giá trị lớn bằng khả năng lưu trữ của máy.

Nhận Giá trị Số nguyên Tối đa bằng Python Sử dụng Mô-đun sys

Như chúng ta đã thảo luận ở trên, không có giới hạn hoặc giá trị tối đa của một số nguyên trong Python 3, nhưng có một giới hạn cho số nguyên trong Python 2, sau đó kiểu dữ liệu của biến chuyển sang kiểu dữ liệu dài.

Chúng ta có thể lấy giá trị số nguyên lớn nhất trong Python 2 bằng cách sử dụng sys.maxint, bằng 231 - 1. Mã ví dụ dưới đây trình bày cách sử dụng sys.maxint để lấy giá trị số nguyên tối đa trong Python 2

import sys

print(sys.maxint)

đầu ra

Trong Python 3, sys.maxint không tồn tại vì không có giới hạn hoặc giá trị tối đa cho kiểu dữ liệu số nguyên. Nhưng chúng ta có thể sử dụng sys.maxsize để lấy giá trị lớn nhất của loại Py_ssize_t trong Python 2 và 3. Nó cũng là kích thước tối đa mà danh sách, chuỗi, từ điển và các loại vùng chứa tương tự có thể có

Mã ví dụ dưới đây trình bày cách lấy giá trị tối đa cho các loại vùng chứa trong Python

import sys

print(sys.maxsize)

Trong trường hợp chúng ta cần lấy giá trị lớn nhất hoặc nhỏ nhất của số nguyên để sử dụng nó trong kiểm tra điều kiện, chúng ta có thể sử dụng float('inf')

import sys

print(sys.maxsize)
0 để lấy vô cực dương và âm trong Python

Trong Python 3, kiểu dữ liệu int về cơ bản giống với kiểu long trong Python 2, vì vậy ý ​​tưởng về số int tối đa sẽ hiệu quả. Python2 có hai kiểu số nguyên, int và long, nhưng Python3 chỉ có int

Python chuyển liền mạch từ số nguyên đơn giản sang số nguyên dài khi bạn vượt qua giá trị này. Vì vậy, hầu hết thời gian, bạn sẽ không muốn biết điều đó

Python tối đa int

Không có khái niệm max int trong Python. Kiểu int không bị chặn trong Python3. Để kiểm tra kích thước từ của trình thông dịch hiện tại trong Python 3, hãy sử dụng sys. kích thước tối đa

Nếu bạn đang sử dụng thuộc tính của mô-đun sys, bạn cần nhập nó vào đầu tệp của mình

import sys

Bây giờ, bạn có thể sử dụng thuộc tính maxsize

import sys

print(sys.maxsize)

đầu ra

9223372036854775807

Nó chính xác là 2^63 – 1, vì vậy bạn có một int 64-bit

Giá trị tối đa có thể biểu thị bằng một từ không dấu trong Python sẽ là sys. maxsize * 2 + 1 và số bit trong một từ sẽ là phép toán. log2(sys. kích thước tối đa * 2 + 2)

hệ thống. maxsize không phải là giá trị int tối đa có thể và nó có thể xử lý các giá trị lớn hơn khi bộ nhớ khả dụng

Trong Python, bạn có thể sử dụng sys.maxsize từ mô-đun

import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
0 để lấy các giá trị số nguyên lớn nhất và nhỏ nhất

sys.maxsize cung cấp cho bạn giá trị số nguyên tối đa và phiên bản âm của nó

import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
2 cung cấp cho bạn giá trị số nguyên tối thiểu

________số 8_______

Lưu ý rằng Python 3. 0+ không giới hạn loại dữ liệu

import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
3 và không có giá trị tối đa/tối thiểu. Nhưng để có được giá trị số nguyên tối đa thực tế cho một từ số nguyên duy nhất trong hệ điều hành của bạn, hãy sử dụng sys.maxsize như hình trên

Hướng dẫn này dạy bạn cách lấy giá trị số nguyên tối đa và tối thiểu trong Python

Bạn sẽ hiểu tại sao các giá trị số nguyên lớn nhất và nhỏ nhất lại tồn tại ngay từ đầu. Bạn cũng sẽ tìm hiểu cách lấy các giá trị số nguyên tối đa/tối thiểu trong các phiên bản Python trước 3. 0 cũng như Python 3. 0+. Ngoài ra, bạn sẽ học cách lấy số nguyên tối đa/tối thiểu trong NumPy

Hãy nhảy vào nó

Giá trị số nguyên Extrema

Bộ nhớ máy tính có hạn. Một hệ điều hành điển hình sử dụng hệ thống 32 bit hoặc 64 bit để biểu diễn các số. Điều này có nghĩa là hệ thống có thể đại diện cho các số 2³² hoặc 2⁶⁴

Lưu ý rằng giới hạn kích thước số nguyên tối đa/tối thiểu không phải là thứ chỉ dành cho Python vì nó phụ thuộc vào khả năng của thiết bị chứ không phải ngôn ngữ lập trình

Chúng ta hãy xem xét kỹ hơn những gì giới hạn kích thước của một số nguyên nói chung

Tại sao lại có Tối đa/Tối thiểu cho Số nguyên?

32-bit integer maximum and minimum values

Số nguyên tối đa là số tối đa mà cửa hàng nhị phân có thể chứa. Nhiều hệ điều hành sử dụng 32 bit để lưu trữ. Điều này có nghĩa là bạn phải khớp bất kỳ số nào bạn muốn sử dụng trong 32 bit đó

Một bit là một chữ số nhị phân có giá trị là 0 hoặc 1. Nếu bạn tạo một dòng các bit này, bạn có thể nhận được một số kết hợp khác nhau của 0 và 1

Ví dụ: nếu bạn có 2 bit, bạn có 2² = 4 kết hợp có thể

  • 00
  • 01
  • 10
  • 11

Và đối với N bit, bạn có 2^N kết hợp có thể

Một máy tính sử dụng 32 bit để biểu diễn các số có tổng số 2³² = 4.294.967.296 kết hợp có thể. Điều này có nghĩa là máy tính có thể biểu diễn tổng cộng 2³² số sao cho mỗi tổ hợp bit tương ứng với một số trong hệ thống số thập phân

Nhưng như bạn đã biết, bạn không chỉ có số dương mà còn có cả số âm và số không. Nhưng các bit không hiểu các dấu hiệu tiêu cực. Thay vào đó, máy tính có thể sử dụng 1 làm dấu âm và 0 làm dấu dương

Trong chuỗi 32 bit, điều này có nghĩa là dấu được biểu thị bằng bit ngoài cùng bên trái (1 cho giá trị âm, 0 cho giá trị dương). Bởi vì một bit được sử dụng làm dấu, nên nó để lại 31 bit để biểu diễn các số thực

Điều này có nghĩa là số nguyên lớn nhất trong hệ thống 32 bit là 0 theo sau là 31 1. Nói cách khác, 2³⁰ + 2²⁹ + … + 2² + 2¹ + 2⁰. Đây là 2³¹ – 1 hoặc 2.147.483.647. Vì vậy, bạn có thể đếm từ 0 đến 2.147.483.647 bằng cách sử dụng loại hệ thống số nguyên có dấu 32 bit này

Khi nói đến giá trị âm, ý tưởng hoàn toàn giống nhau. Giá trị âm nhỏ nhất là 1 theo sau là 31 1, nghĩa là 2³⁰ + 2²⁹ + … + 2² + 2¹ + 2⁰. Là một giá trị âm, đây là -2,147,483,647. Nhưng hãy nhớ rằng, vì giá trị 0 đã được bao gồm trong phạm vi các số dương có thể đếm được, nên chúng tôi bắt đầu đếm các giá trị âm từ -1 thay vì 0. Điều này có nghĩa là giá trị âm nhỏ nhất có thể có trong hệ thống số nguyên có dấu 32 bit thực tế nhỏ hơn -2.147.483.647 một giá trị, tức là -2.147.483.648

Và nếu máy tính sử dụng 64 bit để lưu trữ số, thì ý tưởng cũng giống như vậy

Giá trị lớn nhất của số nguyên có dấu 64 bit là 2⁶³ – 1 = 9.223.372.036.854.775.807 và giá trị nhỏ nhất là -(2⁶³ – 1) – 1 = -9.223.372.036.854.775.808

Tóm lại, giá trị tối đa và tối thiểu cho số nguyên trong ngôn ngữ lập trình được xác định bởi dung lượng bộ nhớ được phân bổ để lưu trữ chúng và loại số nguyên đang được sử dụng. Các giá trị này rất quan trọng vì chúng xác định phạm vi giá trị mà một biến số nguyên có thể lưu trữ và chúng có thể ảnh hưởng đến độ chính xác và độ chính xác của các phép tính liên quan đến số nguyên

Giá trị số nguyên tối đa của Python

Để có được giá trị lớn nhất của kiểu dữ liệu số nguyên, hãy sử dụng hàm sys.maxsize

import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")

Giá trị số nguyên tối thiểu Python

Để có được giá trị nhỏ nhất của kiểu dữ liệu số nguyên, hãy sử dụng giá trị sys.maxsize âm và trừ 1 từ giá trị đó để giải thích cho 0 nằm trong phạm vi giá trị dương

import sys

# Get the min integer value
min_int = -sys.maxsize - 1

print(f"The minimum integer value is {min_int}")

Python 3+ Loại 'int' Không có giới hạn

Kể từ Python 3, kiểu int không bị ràng buộc. Điều này có nghĩa là không có giới hạn về mức độ lớn mà bạn có thể biểu diễn bằng cách sử dụng kiểu int

Quay lại các phiên bản Python sớm hơn 3. 0, kiểu int nhất định nằm trong khoảng [-2⁶³, 2⁶³ – 1]. Nếu bạn muốn sử dụng một số lớn hơn hoặc nhỏ hơn số trong phạm vi, bạn phải sử dụng kiểu dữ liệu

import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
7. Trên thực tế, việc chuyển đổi từ
import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
3 thành
import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
7 diễn ra tự động

Ví dụ: hãy thử in một số lượng lớn trong Python 2 trong đó kiểu int vẫn bị chặn

print(9223372036854775807)
print(9223372036854775808)

đầu ra

9223372036854775807
9223372036854775808L

Lưu ý chữ 'L' ở cuối số thứ hai. Bởi vì

import sys

# Get the min integer value
min_int = -sys.maxsize - 1

print(f"The minimum integer value is {min_int}")
0 lớn hơn giá trị tối đa của
import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
3, nên nó tự động trở thành
import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
7 mà Python biểu thị bằng cách thêm 'L' vào cuối

Nhưng trong Python 3, kiểu int không bị chặn. Về cơ bản, những gì long trong Python 2 bây giờ là int trong Python 3+. Ngoài ra, chữ 'L' không còn được thêm vào cuối các số nguyên lớn

Hãy lặp lại ví dụ trước trong Python 3

print(9223372036854775807)
print(9223372036854775808)

đầu ra

9223372036854775807
9223372036854775808

Mặc dù không có giới hạn về độ lớn của một số nguyên trong Python, nhưng sys.maxsize cung cấp cho bạn giới hạn trên đối với các danh sách hoặc chuỗi thực tế. Giá trị tối đa hoạt động như một giá trị trọng điểm trong các thuật toán, vì vậy mặc dù nó không phải là giới hạn cứng trong số nguyên Python, nhưng nó cho biết kích thước từ tối đa được sử dụng để biểu thị số nguyên đằng sau hậu trường

Nếu điều này không hợp lý, hãy xem điều gì sẽ xảy ra nếu bạn cố gắng sử dụng một số nguyên lớn hơn sys.maxsize để truy cập một phần tử danh sách

l = [1,2,3,4,5,6]
value = l[10000000000000000000000000000000000]

đầu ra

Traceback (most recent call last):
  File "", line 1, in 
IndexError: cannot fit 'int' into an index-sized integer

Lỗi nói rằng chỉ mục số nguyên bạn đang sử dụng để truy cập các thành phần danh sách quá lớn để trở thành một chỉ mục. Điều này xảy ra do những hạn chế của hệ điều hành của bạn. Chỉ mục Python vẫn phải là một số nguyên được giới hạn bởi giới hạn 32 bit hoặc 64 bit

Vì vậy, mặc dù

import sys

# Get the max integer value
max_int = sys.maxsize

print(f"The maximum integer value is {max_int}")
3 không bị chặn trong Python, hệ điều hành cơ bản vẫn sử dụng 32 hoặc 64 bit để biểu thị các số

Max int 32 trong Python là gì?

Kiểu dữ liệu int trong python đơn giản giống với kiểu số nguyên có dấu. Số nguyên có dấu là số nguyên 32 bit trong phạm vi -(2^31) = -2147483648 đến (2^31) – 1=2147483647 .

Max int 64 trong Python là gì?

Giá trị tối đa cho INT là gì?

Giới hạn về hằng số nguyên