Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค่าสูงสุดของจำนวนเต็มใน Python คือเท่าใด


ต่างจาก C/C++ Long ใน Python 3 ที่มีความแม่นยำไม่จำกัด และไม่มีขีดจำกัดที่กำหนดไว้อย่างชัดเจน จำนวนพื้นที่ที่อยู่ที่ใช้ได้ถือเป็นขีดจำกัดในทางปฏิบัติ

ใน python 2 จำนวนเต็มจะเปลี่ยนเป็น long โดยอัตโนมัติเมื่อยาวเกินขีดจำกัด -

Python 2

>>> import sys
>>> type(sys.maxint)
<type 'int'>
>>> type(sys.maxint + 1)
<type 'long'>

Python 3

Maxint ถูกลบใน python 3 แต่มักจะใช้ sys.maxsize แทนได้

>>> import sys
>>> type (sys.maxsize)
<class 'int'>
>>> type (sys.maxsize + 1)
<class 'int'>

จากผลลัพธ์ด้านบน เราจะเห็นได้ว่าใน python 3 int และ long ถูกรวมเข้าด้วยกันจริง ๆ และค่านั้นไม่มีความสำคัญเช่นนั้น

#Python 2.7

>>> import sys
>>> print sys.maxint# Max Integer value
2147483647
>>> print -sys.maxint -1# Min. Ineteger value
-2147483648

แต่ใน python 3 เราสามารถกำหนดค่าที่สูงกว่านี้ได้เนื่องจากช่วงนี้จะเพิ่มขึ้น sys.maxint ถูกแทนที่ด้วย sys.maxsize

#In Python 3.6

>>> import sys
>>> print(sys.maxsize)
2147483647

ค่าจำนวนเต็ม ค่ายาว และค่าลอยตัวที่ใหญ่ที่สุดและเล็กที่สุด

#Python 2.7
import sys
print("Float value information: ",sys.float_info)
print("\n")
print("Long Integer value information: ",sys.long_info)
print("\n")
print("Maximum size of an integer: ",sys.maxsize)

ผลลัพธ์

('Float value information: ', sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, 
min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, 
mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1))
('Long Integer value information: ', sys.long_info(bits_per_digit=30, sizeof_digit=4))
('Maximum size of an integer: ', 9223372036854775807L)

#Python 3.6

import sys
print("Float value information: ",sys.float_info)
print("\nInteger value information: ",sys.int_info)
print("\nMaximum size of an integer: ",sys.maxsize)

ผลลัพธ์

Float value information: sys.float_info(max=1.7976931348623157e+308, max_exp=1024, 
max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, 
dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
Integer value information: sys.int_info(bits_per_digit=15, sizeof_digit=2)
Maximum size of an integer: 2147483647