Được rồi, hãy để điều này ra khỏi con đường! Những điều cơ bản là khá tiêu chuẩn: & nbsp;
- Có 8 bit trong một byte
- Bit bao gồm 0 hoặc 1
- Một byte có thể được giải thích theo những cách khác nhau, như octal nhị phân hoặc thập lục phân
Lưu ý: Đây không phải là mã hóa ký tự, chúng đến sau. Đây chỉ là một cách để xem xét một bộ 1 1 và 0 và xem nó theo ba cách khác nhau [hoặc hệ thống số]. These are not character encodings, those come later. This is just a way to look at a set of 1’s and 0’s and see it in three different ways[or number systems].
Examples:
Input : 10011011 Output : 1001 1011 ---- 9B [in hex] 1001 1011 ---- 155 [in decimal] 1001 1011 ---- 233 [in octal]
Điều này cho thấy rõ một chuỗi các bit có thể được giải thích khác nhau theo những cách khác nhau. Chúng ta thường sử dụng biểu diễn HEX của một byte thay vì nhị phân vì nó ngắn hơn để viết, đây chỉ là một đại diện và không phải là một cách giải thích.
Mã hóa
Bây giờ chúng ta biết một byte là gì và nó trông như thế nào, chúng ta hãy xem nó được giải thích như thế nào, chủ yếu là trong chuỗi. Mã hóa ký tự là một cách để gán các giá trị cho byte hoặc bộ byte đại diện cho một ký tự nhất định trong sơ đồ đó. Một số mã hóa là ASCII [có lẽ là lâu đời nhất], tiếng Latin và UTF-8 [được sử dụng rộng rãi nhất như ngày nay. Mã hóa có thể trở nên hoàn toàn không thể hiểu được trong một mã hóa khác.
Python và byte
Từ quan điểm của nhà phát triển, sự thay đổi lớn nhất trong Python 3 là việc xử lý các chuỗi. Trong Python 2, loại STR được sử dụng cho hai loại giá trị khác nhau - văn bản và byte, trong khi trong Python 3, đây là những loại riêng biệt và không tương thích. Điều này có nghĩa là trước Python3, chúng ta có thể coi một tập hợp các byte như một chuỗi và hoạt động từ đó, đây không phải là trường hợp bây giờ, bây giờ chúng ta có một loại dữ liệu riêng biệt, được gọi là byte. Kiểu dữ liệu này có thể được giải thích ngắn gọn dưới dạng một chuỗi byte, về cơ bản có nghĩa là, một khi loại dữ liệu byte được khởi tạo, nó là bất biến. & NBSP;
Example:
Python3
bytestr
=
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment0
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment1
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment2
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment4
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment6
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment7
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment8
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment9
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment7
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'1
=
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'3
Output:
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment
Một bytestring là những gì nó nói rằng nó chỉ đơn giản là một chuỗi byte, ví dụ ‘©? ?
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'
Điều này thể hiện một vấn đề khác, chúng ta cần biết mã hóa một chuỗi nhị phân, bởi vì cùng một chuỗi trong một mã hóa khác [Latin-1] trông khác nhau.
© ð â
Example:
Python3
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'5
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'6
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'7
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'8
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'9
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'5
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'6
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'7
© ð â4
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'9
Output:
Như đã thấy ở trên, có thể mã hóa hoặc giải mã chuỗi và chuỗi nhị phân bằng hàm mã hóa [] hoặc giải mã []. Chúng ta cần mã hóa vì trong một số mã hóa, không thể giải mã các chuỗi. Vấn đề này hợp chất khi không sử dụng các ký tự không phải Latin như tiếng Do Thái, tiếng Nhật và tiếng Trung. Bởi vì trong các ngôn ngữ đó, nhiều hơn một byte được gán cho mỗi chữ cái. Nhưng chúng ta sử dụng gì khi chúng ta cần sửa đổi một tập hợp các byte, chúng ta sử dụng bytearray. & Nbsp;bytearray.
Example:
Python3
© ð â6
=
© ð â8
© ð â9
bytearray[b'\xff\x0f\xff']0
bytearray[b'\xff\x0f\xff']1
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment7
b'\xC2\xA9\x20\xF0\x9D\x8C\x86\x20\xE2\x98\x83'1
=
bytearray[b'\xff\x0f\xff']5
bytearray[b'\xff\x0f\xff']6
bytearray[b'\xff\x0f\xff']5
bytearray[b'\xff\x0f\xff']0
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
-241 0 255 165 1 30 0 10
Output:
bytearray[b'\xff\x0f\xff']
Hoạt động bitwise
Trong Python, các toán tử bitwise được sử dụng để thực hiện các tính toán bitwise trên các số nguyên. Các số nguyên trước tiên được chuyển đổi thành nhị phân và sau đó các hoạt động được thực hiện theo từng bit, do đó tên các toán tử bitwise. Các hoạt động bitwise tiêu chuẩn được thể hiện dưới đây. & NBSP;
Lưu ý: Để biết thêm thông tin, hãy tham khảo các toán tử Bitwise PythonFor more information, refer to Python Bitwise Operators
Example:
Python3
-241 0 255 165 1 30 0 11
=
-241 0 255 165 1 30 0 13
-241 0 255 165 1 30 0 14
-241 0 255 165 1 30 0 15
-241 0 255 165 1 30 0 16
-241 0 255 165 1 30 0 17
-241 0 255 165 1 30 0 18
-241 0 255 165 1 30 0 19
=
-241 0 255 165 1 30 0 13
-241 0 255 165 1 30 0 14
Files do not match.3
-241 0 255 165 1 30 0 16
-241 0 255 165 1 30 0 17
-241 0 255 165 1 30 0 18
Files do not match.7
=
-241 0 255 165 1 30 0 13
-241 0 255 165 1 30 0 14
JPEG detected.1
-241 0 255 165 1 30 0 16
-241 0 255 165 1 30 0 17
-241 0 255 165 1 30 0 18
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
JPEG detected.6
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
JPEG detected.8
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
bytestr
0b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
bytestr
2b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
bytestr
4bytestr
5bytearray[b'\xff\x0f\xff']0
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
bytestr
8bytestr
9bytearray[b'\xff\x0f\xff']0
‘
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment00
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment02
Output:
-241 0 255 165 1 30 0 1
Một số ứng dụng khác
Dữ liệu nhị phân cung cấp một số ứng dụng như chúng tôi có thể kiểm tra xem hai tệp có giống nhau hoặc không sử dụng dữ liệu nhị phân hay không, chúng tôi cũng có thể kiểm tra xem một tệp có phải là JPEG hay không [hoặc bất kỳ định dạng hình ảnh nào khác]. Hãy cùng xem các ví dụ dưới đây để hiểu rõ hơn.
Ví dụ 1: Kiểm tra xem hai tệp có giống nhau hay không. Ở đây, hai tệp văn bản được sử dụng với dữ liệu như sau - & nbsp;Checking if the two files are same or not. Here two text files are used with the data as follows –
Tệp 1:
Tệp 2:
Python3
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment03
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment04
-241 0 255 165 1 30 0 14
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment06
-241 0 255 165 1 30 0 16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment08
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment09
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment04
-241 0 255 165 1 30 0 14
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment12
-241 0 255 165 1 30 0 16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment08
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment15
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment17
=
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment19
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment21
=
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment23
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment24
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment25
=
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment27
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
-241 0 255 165 1 30 0 14
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment31
bytearray[b'\xff\x0f\xff']0
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment33
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment34
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
-241 0 255 165 1 30 0 14
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment38
bytearray[b'\xff\x0f\xff']0
Output:
Files do not match.
Ví dụ 2: Kiểm tra xem hình ảnh đã cho là JPEG hay không.Checking if the given image is jpeg or not.
Hình ảnh được sử dụng:
Python3
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment40
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment41
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment42
=
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment44
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment46
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment47
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment48
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment46
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment51
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment48
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment46
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment55
bytearray[b'\xff\x0f\xff']0
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment57
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment03
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment04
-241 0 255 165 1 30 0 14
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment61
-241 0 255 165 1 30 0 16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment08
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment64
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment65
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment34
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment68
=
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment65
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment71
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment72
bytearray[b'\xff\x0f\xff']0
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment24
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment68
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment77
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment78
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment79
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
-241 0 255 165 1 30 0 14
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment82
bytearray[b'\xff\x0f\xff']0
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment16
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment33
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment34
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment79
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment3
-241 0 255 165 1 30 0 14
b'abc' 97 Traceback [most recent call last]: File "bytesExample.py", line 4, in bytestr[0] = 97 TypeError: 'bytes' object does not support item assignment90
bytearray[b'\xff\x0f\xff']0
Output:
JPEG detected.