Hướng dẫn binary to signed integer python - nhị phân sang số nguyên có dấu python

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

Làm thế nào để bạn chuyển đổi nhị phân thành số nguyên trong Python?

Trong Python, bạn chỉ có thể sử dụng hàm bin [] để chuyển đổi từ giá trị thập phân sang giá trị nhị phân tương ứng của nó. Và tương tự, hàm int [] để chuyển đổi một nhị phân thành giá trị thập phân của nó. Hàm int [] lấy đối số thứ hai là cơ sở của số sẽ được chuyển đổi, đó là 2 trong trường hợp số nhị phân.the int[] function to convert a binary to its decimal value. The int[] function takes as second argument the base of the number to be converted, which is 2 in case of binary numbers.

Làm thế nào để bạn chuyển đổi số nhị phân thành các số đã ký?

Một số nhị phân đã ký được chuyển đổi thành một số thập phân bằng cách sử dụng quy trình sau: vị trí đáng kể [n - 1] của các bit được nâng lên công suất của hai và sau đó được thêm vào để thu được kết quả thập phân.Nếu vị trí quan trọng nhất là 0 thì đó là số dương, nếu không thì số đó là âm.The significant [n - 1] position of the bits are raised to the power of two and then added to obtain the decimal result. If the most significant position is 0 then it's a positive number, otherwise the number is negative.

Làm thế nào để bạn chuyển đổi một số nguyên đã ký trong Python?

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.

Làm thế nào để bạn chuyển đổi sang nhị phân đã ký?

Điều này có thể được thực hiện chỉ bằng cách bổ sung các bit, bằng cách chuyển đổi 0 thành 1 và 1 thành 0. bit quan trọng nhất là bit ngoài cùng bên trái, đại diện cho dấu hiệu của một chữ số nhị phân.Nếu nó bằng không thì nó là tích cực và nếu nó là 1 thì nó đại diện cho một số âm.complementing the bits, by converting 0 to 1 and 1 to 0. The most significant bit is the leftmost bit, which represents the sign of a binary digit. If it's zero then it's positive, and if it's 1 then it represents a negative number.

Bài Viết Liên Quan

Chủ Đề