Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về số nguyên trong Python và cách Python lưu trữ số nguyên trong bộ nhớ
Số nguyên là số nguyên 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
2 để biểu diễn tất cả các số nguyên. Tất cả các số nguyên là đối tượngCode language: Python [python]
Cách máy tính lưu trữ số nguyên
Máy tính không thể lưu trữ số nguyên trực tiếp. Thay vào đó, chúng chỉ có thể lưu trữ các số nhị phân như 0 và 1
Để lưu trữ số nguyên, máy tính cần sử dụng số nhị phân để biểu diễn số nguyên
Ví dụ: để lưu trữ số 5, máy tính cần biểu diễn số đó bằng 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 số 5 trong bộ nhớ
[101]2 = [5]10
Giả sử bạn có 8 bit, bạn có thể lưu trữ tối đa 255 số nguyên từ 0 đến 255
255= 1x27 + 1x26 + 1x25 + 1x24 + 1x23 + 1x22 + 1x21 + 1x20
Bằng cách sử dụng 8 bit, bạn có thể lưu trữ tới 28 – 1 = 255 số nguyên
Để lưu trữ cả số nguyên âm, số 0 và số nguyên dương, bạn cần dành 1 bit để lưu dấu, âm [-] và dương [+]. Do đó, với 8 bit
- Số nguyên lớn nhất mà máy tính có thể biểu 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 nên máy tính có thể tạo 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] = [
3,
Code language: Python [python]
4]
Code language: Python [python] - 32-bit ~ [-231, 231 – 1] = [-
5,
Code language: Python [python]
6]
Code language: Python [python] - 64-bit ~ [-263, 263 – 1] = [
7,
Code language: Python [python]
8]
Code language: Python [python]
Cách 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
2 sử dụng 32 bit và loạiCode language: Python [python]
0 sử dụng 64 bit để biểu diễn số nguyên. Dựa trên các kiểu số nguyên, bạn có thể xác định phạm vi của các số nguyên mà các kiểu đó có thể biểu diễnCode language: Python [python]
from sys import getsizeof counter = 0 size = getsizeof[counter] print[size] # 24 bytes
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ố bit thay đổi để lưu trữ số nguyên. Ví dụ: 8 bit, 16 bit, 32 bit, 64 bit, 128 bit, v.v.
Số nguyên tối đa mà Python có thể biểu diễn phụ thuộc vào bộ nhớ khả dụng
Ngoài ra, số nguyên là đối tượng. Python cần thêm một số byte cố định làm chi phí chung 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 phép tính như ________ 81, ________ 82, … sẽ càng chậm.
Kiểu int trong Python
Phần sau định nghĩa một biến tham chiếu đến một số nguyên và sử dụng hàm
3 để lấy tên lớp của số nguyênCode language: Python [python]
from sys import getsizeof counter = 0 size = getsizeof[counter] print[size] # 24 bytes
2Code language: Python [python]
đầu ra
Code language: Python [python]
Như bạn có thể thấy rõ từ đầu ra, một số nguyên là một thể hiện của lớp _______ 02
Lấy kích thước của một số nguyên
Để lấy kích thước của một số nguyên, bạn sử dụng hàm
5 của mô-đunCode language: Python [python]
from sys import getsizeof counter = 0 size = getsizeof[counter] print[size] # 24 bytes
6Code language: Python [python]
from sys import getsizeof counter = 0 size = getsizeof[counter] print[size] # 24 bytes
Hàm
5 trả về số byte mà Python sử dụng để biểu diễn một số nguyên. Ví dụCode language: Python [python]
from sys import getsizeof counter = 0 size = getsizeof[counter] print[size] # 24 bytes
đầu ra
9Code language: Python [python]
Để lưu trữ số 0, Python sử dụng 24 byte. Vì lưu trữ số 0 nên 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 làm chi phí lưu trữ đối tượng số nguyên
Sau đây trả về kích thước của số nguyên 100
0Code language: Python [python]
đầu ra
1Code language: Python [python]
Nó trả về 28 byte. Vì 24 byte là tổng phí nên Python sử dụng 4 byte để biểu thị số 100
Sau đây là kích thước của số nguyên 264
2Code language: Python [python]
đầu ra
3Code language: Python [python]
Vì vậy, để lưu trữ số nguyên 264, Python sử dụng 36 byte
Phép toán số nguyên trong 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 phép cộng, phép trừ, phép nhân và số mũ của số nguyên là một số nguyên. Ví dụ