Chống lại lời khuyên của các tài nguyên trực tuyến, tôi đang sử dụng Python để thực hiện một số bit đơn giản trong một trong các tập lệnh của tôi. Sự thay đổi bit là tốt, nó đại diện cho kết quả khó khăn. Hãy để tôi giải thích.
Tôi có biểu diễn nhị phân 64 bit
1000010101010111010101010101010101010101010101010111010101010101
mà, khi được biểu diễn dưới dạng số nguyên có chữ ký, nên âm. Tuy nhiên, Python mặc định là loại long
, ngăn số đó được ký bởi bit đầu tiên, mang lại số 9608242155010487637
.
Làm thế nào tôi có thể khiến Python nhận ra bit dấu hiệu trong 64 bit?
Để làm rõ, tôi đang sử dụng Python 2.7.
Bài đăng này sẽ thảo luận về cách chuyển đổi một chuỗi nhị phân thành một số nguyên trong Python.
1. Sử dụng chức năng int[]
Cách tiêu chuẩn để chuyển đổi chuỗi nhị phân thành số nguyên là sử dụng hàm tích hợp int
. Bạn cần vượt qua Base 2 cho một số nhị phân.
if__name__=='__main__':__name__=='__main__': b="01001111"b ="01001111" x=int[b,2]x= int[b,2] & nbsp; & nbsp; & nbsp; & nbsp; print [x] & nbsp;print[x] # 79 |
Tải xuống & nbsp; & nbsp; mã
2. Sử dụng mô -đun bitstring
Một cách khác là sử dụng mô -đun bitstring
, như được hiển thị bên dưới:
FromBitString Nhập khẩubitstring importBitArray if__name__=='__main__':__name__== '__main__': b="01001111"b="01001111" x=BitArray[bin=b].intx =BitArray[bin=b].int & nbsp; & nbsp; & nbsp; & nbsp; print [x] & nbsp;print[x] # 79 |
Tải xuống & nbsp; & nbsp; mã
2. Sử dụng mô -đun bitstring
Máy tính có một ngôn ngữ khác nhau và họ không thể hiểu các từ và tình cảm như tất cả chúng ta. Điều duy nhất mà máy hoặc máy tính có thể hiểu là hai tín hiệu: tắt nguồn và bật nguồn, các tín hiệu này được biểu thị bằng hai số, 0 và 1 tương ứng. Các hoán vị khác nhau của 0S và 1S & NBSP; Cung cấp cho chúng tôi các chuỗi khác nhau, từ đó được sử dụng để thể hiện các chữ cái, số và ký tự đặc biệt khác nhau trong bộ nhớ. Ngôn ngữ bao gồm các chuỗi này được gọi là ngôn ngữ nhị phân.0s and 1s give us different sequences which in turn are used to represent different letters, numbers, and special characters in the memory. The language comprising of these sequences is known as binary language.
Trong hướng dẫn này, chúng tôi sẽ thảo luận về cách chúng ta có thể chuyển đổi một chuỗi nhị phân thành một số nguyên trong Python. Nhưng trước khi chúng ta chia sâu thành các phương pháp chuyển đổi khác nhau, chúng ta hãy tóm tắt nhanh các chuỗi và số nguyên.
Chuỗi là gì?
Các chuỗi trong Python được định nghĩa là mảng byte đại diện cho các ký tự Unicode. Nếu bạn đi kèm với kinh nghiệm trong các ngôn ngữ lập trình khác, thì bạn có thể hiểu các chuỗi dưới dạng một loạt các ký tự. Tuy nhiên, điều này không chính xác trong Python, vì Python không có loại dữ liệu char hoặc nhân vật. Một ký tự duy nhất chỉ là một chuỗi có chiều dài 1 cho Python. Tuy nhiên, nếu bạn không quen thuộc với một số ngôn ngữ lập trình khác và thấy các câu trên khó hiểu, thì bạn có thể bỏ qua phần đó vì nó không bắt buộc để hiểu thêm về bài viết.
Số nguyên là gì?
Số nguyên hoặc INT chỉ là một loại dữ liệu khác trong Python được sử dụng để lưu trữ toàn bộ số. Tuy nhiên, loại dữ liệu này không thể chứa số thập phân hoặc phân số. Bây giờ chúng ta hãy xem xét các cách mà chúng ta có thể thực hiện chuyển đổi cần thiết.
Làm thế nào để chuyển đổi một chuỗi nhị phân thành một số nguyên trong Python?
Ký tự và số được mã hóa trong bộ nhớ dưới dạng số nhị phân. Vì vậy, nếu chúng ta có một chuỗi chứa một số nhị phân, chúng ta sẽ có thể chuyển đổi nó thành số tương ứng của nó. Đây là những gì chúng tôi sẽ đạt được trong phần này. & NBSP; Có chủ yếu là hai cách mà chúng ta có thể thực hiện chuyển đổi, chúng ta hãy đi qua từng người một.
1] Sử dụng mô -đun bitstring
Python được biết đến với nhiều mô-đun và cộng đồng nguồn mở lớn của nó. Trong bộ sưu tập khổng lồ của các thư viện nguồn mở này, mô-đun mà chúng ta sẽ sử dụng ngày hôm nay là mô-đun bitstring. Mô -đun này làm cho việc tạo, thao tác và phân tích dữ liệu nhị phân đơn giản nhất có thể. Lớp mà chúng tôi sẽ sử dụng ngày hôm nay để đạt được nhiệm vụ của chúng tôi là lớp Bitarray. Lớp này có mặt bên trong mô -đun bitstring và có một thuộc tính gọi là int. Khách sạn này chứa hai biểu diễn số nguyên bổ sung có chữ ký của bitstring. Trước khi chúng tôi có thể truy cập thuộc tính này, chúng tôi được yêu cầu tạo một đối tượng của lớp Bitarray. Chất xây dựng của lớp này yêu cầu chúng tôi chỉ định trình khởi tạo, cho biết lớp về loại dữ liệu chúng tôi sẽ cung cấp nó. Trong điều này có thể vì chúng tôi đang xử lý chuỗi nhị phân, có trình khởi tạo mà chúng tôi sẽ sử dụng là bin. Sau khi khởi tạo đối tượng của chúng tôi, chúng tôi sẽ truy cập thuộc tính INT của đối tượng để có được số nguyên bắt buộc.bitstring module. This module makes the creation, manipulation, and analysis of binary data as simple as possible. The class which we will be utilizing today to achieve our task is the BitArray class. This class is present inside the bitstring module and has a property called int. This property contains the signed two’s complement integer representation of the bitstring. Before we can access this property, we are required to create an object of the BitArray class. The constructor of this class requires us to specify an initializer, which tells the class about the type of data we will be providing it with. In this can since we are dealing with binary string, there the initializer which we will be using is bin. After initializing our object we will access the int property of the object to get the required integer.
Ví dụ:
from bitstring import BitArray # initialize a binary string bString = "10101" # conversion value = BitArray[bin=bString].int # display the converted value print[value]
Đầu ra
Xin lưu ý rằng bạn sẽ phải cài đặt mô -đun bitstring vào hệ thống của bạn bằng lệnh PIP.
2] Sử dụng int
Cách tiếp cận này khá đơn giản và không yêu cầu cài đặt các gói. Trong đó, chúng tôi sử dụng chức năng tích hợp được gọi là int. Hàm này lấy chuỗi mà chúng tôi muốn chuyển đổi làm đối số đầu tiên và cơ sở của số làm đối số thứ hai của nó. Vì ở đây, chúng tôi đang xử lý một số nhị phân, do đó cơ sở là 2. Phương thức này sau đó trả về giá trị nguyên của chuỗi nhị phân.int. This function takes the string which we want to convert as its first argument and the base of the number as its second argument. Since here we are dealing with a binary number therefore the base is 2. This method then returns the integer value of the binary string.
Ví dụ:
# initialize a binary string bString = "10101" # conversion value = int[bString, 2] # display the converted value print[value]
Đầu ra
Xin lưu ý rằng bạn sẽ phải cài đặt mô -đun bitstring vào hệ thống của bạn bằng lệnh PIP.
2] Sử dụng int