Hướng dẫn is int in python 64 - là int trong python 64

10

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Vì vậy, tôi đang nghĩ đến việc viết một bảng bitboard bằng Python hoặc Lisp. Nhưng tôi không biết làm thế nào để đảm bảo tôi sẽ có được số nguyên 64 bit trong Python. Tôi đã đọc tài liệu và thấy rằng thư viện MPZ trả về một số nguyên 32 bit không dấu. Điều này có đúng không? Nếu không tôi nên làm gì?

Hướng dẫn is int in python 64 - là int trong python 64

Hỏi ngày 30 tháng 12 năm 2011 lúc 6:05Dec 30, 2011 at 6:05

2

Python 2 có hai loại số nguyên:

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
4, là một số nguyên có chữ ký có kích thước bằng kích thước từ của máy của bạn (nhưng luôn luôn ít nhất 32 bit) và
>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
5, có kích thước không giới hạn.

Python 3 chỉ có một loại số nguyên, được gọi là

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
4 nhưng tương đương với Python 2
>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
5.

Đã trả lời ngày 30 tháng 12 năm 2011 lúc 6:23Dec 30, 2011 at 6:23

TaymontaymonTaymon

24.1k9 Huy hiệu vàng62 Huy hiệu bạc84 Huy hiệu đồng9 gold badges62 silver badges84 bronze badges

5

Bạn có một vài tùy chọn bằng GMPY. Dưới đây là một ví dụ sử dụng GMPY:

>>> from gmpy import mpz
>>> a=mpz(7)
>>> bin(a)
'0b111'
>>> a=a.setbit(48)
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 

GMPY2 là phiên bản phát triển của GMPY và bao gồm một loại mới có tên XMPZ cho phép truy cập trực tiếp hơn vào các bit.

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 

Có những giải pháp khác như Bitarray mà bạn có thể muốn xem.

Tuyên bố miễn trừ trách nhiệm: Tôi duy trì GMPY và GMPY2.

Đã trả lời ngày 30 tháng 12 năm 2011 lúc 7:41Dec 30, 2011 at 7:41

CASEVHCASEVHcasevh

10,9k1 Huy hiệu vàng22 Huy hiệu bạc32 Huy hiệu đồng1 gold badge22 silver badges32 bronze badges

3

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về các số nguyên Python và cách Python lưu trữ số nguyên trong bộ nhớ.: in this tutorial, you’ll learn about Python integers and how Python stores integers in the memory.

Số nguyên là các số toàn bộ bao gồm số âm, số 0 và số dương như -3, -2, -1, 0, 1, 2, 3.

Python sử dụng lớp

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
4 để thể hiện tất cả các số nguyên. Tất cả các số nguyên là đối tượng.

Cách máy tính lưu trữ số nguyên

Máy tính có thể lưu trữ số nguyên trực tiếp. Thay vào đó, họ chỉ có thể lưu trữ các số nhị phân như 0 và 1.

Để lưu trữ số nguyên, các máy tính cần sử dụng số nhị phân để đại diện cho các số nguyên.

Ví dụ: để lưu trữ số 5, các máy tính cần thể hiện nó bằng số cơ sở-2:

5 = 1 x 22 + 0 x 21 + 1 x 20

Như bạn có thể thấy, phải mất 3 bit để lưu trữ số 5 trong bộ nhớ:

(101) 2 = (5) 10

Giả sử rằng bạn có 8 bit, bạn có thể lưu trữ tối đa 255 số nguyên từ 0 đến 255:

255 = 1x 27 + 1 x 26 + 1 x 25 + 1x 24 + 1 x 23 + 1 x 22 + 1x 21 + 1 x 20

Bằng cách sử dụng 8 bit, bạn có thể lưu trữ tối đa 28 - 1 = 255 số nguyên.

Để lưu trữ cả số nguyên âm, số không và số nguyên dương, bạn cần đặt trước 1 bit để lưu trữ dấu hiệu, âm (-) và dương (+). Do đó, với 8 bit:

  • Số nguyên lớn nhất mà máy tính có thể đại diện là 27 = 127.
  • Và các máy tính có thể lưu trữ tất cả các số nguyên trong phạm vi (-127, 127)

Vì số 0 không có dấu hiệu, các máy tính có thể vắt thêm một số. Do đó, 8 bit có thể lưu trữ tất cả các số nguyên từ -128 đến 127.

8 bit = [-27, 27-1]

Tương tự, nếu bạn muốn sử dụng 16 bit, 32 bit và 64 bit để lưu trữ số nguyên, phạm vi sẽ là:

  • 16-bit ~ [-215, 215-1] = [
    >>> from gmpy2 import xmpz
    >>> a=xmpz(7)
    >>> bin(a)
    '0b111'
    >>> a[48]=1
    >>> bin(a)
    '0b1000000000000000000000000000000000000000000000111'
    >>> 
    
    9,

    counter = 10 print(type(counter))

    Code language: Python (python)
    0]
  • 32-bit ~ [-231, 231-1] = [-________ 21,

    counter = 10 print(type(counter))

    Code language: Python (python)
    2]
  • 64-bit ~ [-263, 263-1] = [

    counter = 10 print(type(counter))

    Code language: Python (python)
    3,

    counter = 10 print(type(counter))

    Code language: Python (python)
    4]

Làm thế nào python đại diện cho số nguyên

Các ngôn ngữ lập trình khác như Java và C# sử dụng một số bit cố định để lưu trữ số nguyên.

Ví dụ: C# có loại

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
4 sử dụng loại 32 bit và loại
>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
5 sử dụng 64 bit để thể hiện số nguyên. Dựa trên các loại số nguyên, bạn có thể xác định phạm vi của các số nguyên mà các loại có thể đại diện.

Tuy nhiên, Python không sử dụng một số bit cố định để lưu trữ số nguyên. Thay vào đó, Python sử dụng một số lượng bit khác nhau để lưu trữ số nguyên. Ví dụ, 8 bit, 16 bit, 32 bit, 64 bit, 128 bit, v.v.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.

Số nguyên tối đa mà Python có thể đại diện phụ thuộc vào bộ nhớ có sẵn.

Ngoài ra, số nguyên là đối tượng. Python cần thêm một số byte cố định như một chi phí cho mỗi số nguyên.

Điều quan trọng cần lưu ý là các số nguyên càng lớn thì các tính toán càng chậm như

counter = 10 print(type(counter))

Code language: Python (python)
7,

counter = 10 print(type(counter))

Code language: Python (python)
8, sẽ có.

Python int loại

Sau đây xác định một biến tham chiếu một số nguyên và sử dụng hàm

counter = 10 print(type(counter))

Code language: Python (python)
9 để lấy tên lớp của số nguyên:

counter = 10 print(type(counter))

Code language: Python (python)

Output:

<class 'int'>

Code language: Python (python)

Như bạn có thể thấy rõ từ ouput, một số nguyên là một ví dụ của lớp

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
4.

Nhận được kích thước của một số nguyên

Để có được kích thước của một số nguyên, bạn sử dụng hàm

<class 'int'>

Code language: Python (python)
1 của mô -đun

<class 'int'>

Code language: Python (python)
2.

Hàm

<class 'int'>

Code language: Python (python)
1 trả về số byte mà Python sử dụng để đại diện cho một số nguyên. Ví dụ:

from sys import getsizeof counter = 0 size = getsizeof(counter) print(size) # 24 bytes

Code language: Python (python)

Ouput:

24

Code language: Python (python)

Để lưu trữ số 0, Python sử dụng 24 byte. Kể từ khi lưu trữ số 0, Python chỉ cần sử dụng 1 bit. Lưu ý rằng 1 byte bằng 8 bit.

Do đó, bạn có thể nghĩ rằng Python sử dụng 24 byte như một chi phí để lưu trữ một đối tượng số nguyên.

Các phần sau trả về kích thước của số nguyên 100:

from sys import getsizeof counter = 100 size = getsizeof(counter) print(size) # 28 bytes

Code language: Python (python)

Output:

28

Code language: Python (python)

Nó trả về 28 byte. Vì 24 byte là một chi phí, Python sử dụng 4 byte để thể hiện số 100.

Sau đây cho thấy kích thước của số nguyên 264:

from sys import getsizeof counter = 2**64 size = getsizeof(counter) print(size) # 36 bytes

Code language: Python (python)

Output:

36

Code language: Python (python)

Vì vậy, để lưu trữ số nguyên 264, Python sử dụng 36 byte.

Hoạt động số nguyên Python

Số nguyên Python hỗ trợ tất cả các hoạt động tiêu chuẩn bao gồm:

  • Bổ sung +
  • Phép trừ -
  • Phép nhân *
  • Phân công /
  • Số mũ **

Kết quả của việc bổ sung, trừ, nhân và số mũ của số nguyên là một số nguyên. Ví dụ:

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
0

Output:

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
1

Tuy nhiên, sự phân chia của hai số nguyên luôn trả về một số điểm nổi. Ví dụ:

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
2

Output:

>>> from gmpy2 import xmpz
>>> a=xmpz(7)
>>> bin(a)
'0b111'
>>> a[48]=1
>>> bin(a)
'0b1000000000000000000000000000000000000000000000111'
>>> 
3

Bản tóm tắt

  • Số nguyên là các số toàn bộ bao gồm các số nguyên âm, số 0 và số nguyên dương.
  • Máy tính sử dụng số nhị phân để đại diện cho số nguyên.
  • Python sử dụng một số lượng bit thay đổi để thể hiện số nguyên. Do đó, số nguyên lớn nhất mà Python có thể đại diện phụ thuộc vào bộ nhớ có sẵn của máy tính.
  • Trong Python, tất cả các số nguyên là trường hợp của lớp
    >>> from gmpy2 import xmpz
    >>> a=xmpz(7)
    >>> bin(a)
    '0b111'
    >>> a[48]=1
    >>> bin(a)
    '0b1000000000000000000000000000000000000000000000111'
    >>> 
    
    4.
  • Sử dụng hàm

    <class 'int'>

    Code language: Python (python)
    1 của mô -đun

    <class 'int'>

    Code language: Python (python)
    2 để có được số byte của số nguyên.
  • Các số nguyên Python hỗ trợ tất cả các hoạt động tiêu chuẩn bao gồm bổ sung, trừ, nhân, chia và số mũ.

Bạn có thấy hướng dẫn này hữu ích không?

Là python ints 32 hoặc 64

Không có điều đó trong Python.Trong Python 2, int có thể là 32 bit hoặc 64 bit và dài có độ dài tùy ý.Bạn có thể xác định xem một số sẽ phù hợp với 32 hoặc 64 bit và bạn có thể cố gắng đóng gói một số vào định dạng nhị phân có kích thước phù hợp, nhưng đó là một câu hỏi hoàn toàn khác.. In Python 2, int may be 32-bit or 64-bit, and long is of arbitrary length. You can determine whether a number will fit in 32 or 64 bits, and you can attempt to pack a number into a binary format of suitable size, but that's a quite different question.

Là int trong Python 32

Kiểu dữ liệu INT trong Python chỉ đơn giản giống như số nguyên đã ký.Một số nguyên có chữ ký là một số nguyên 32 bit trong phạm vi -(2^31) = -2147483648 đến (2^31) -1 = 2147483647 có chứa số dương hoặc âm.Nó được đại diện trong ký hiệu bổ sung của hai.A signed integer is a 32-bit integer in the range of -(2^31) = -2147483648 to (2^31) – 1=2147483647 which contains positive or negative numbers. It is represented in two's complement notation.

Luôn luôn là 32

int luôn luôn rộng 32 bit.sizeof (t) đại diện cho số byte 8 bit (octet) cần thiết để lưu trữ một biến của loại T.. sizeof(T) represents the number of 8-bit bytes (octets) needed to store a variable of type T .

Là 64

Một số nguyên có chữ ký 64 bit.Nó có giá trị tối thiểu là -9,223,372,036,854,775,808 và giá trị tối đa là 9.223.372.036.854.775.807 (bao gồm).Một số nguyên không dấu 64 bit.Nó có giá trị tối thiểu là 0 và giá trị tối đa là (2^64) -1 (bao gồm).signed integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). A 64-bit unsigned integer. It has a minimum value of 0 and a maximum value of (2^64)-1 (inclusive).