Hướng dẫn concat two bytes in python - nối hai byte trong python

Giả sử bạn có b'\x04'

0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
0 Làm thế nào bạn có thể kết hợp chúng như
0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
1?

Hướng dẫn concat two bytes in python - nối hai byte trong python

7yl4r

4.3384 Huy hiệu vàng35 Huy hiệu bạc45 Huy hiệu Đồng4 gold badges35 silver badges45 bronze badges

Hỏi ngày 2 tháng 4 năm 2017 lúc 12:08Apr 2, 2017 at 12:08

0

Sử dụng Python 3:

>>> a = b'\x04'
>>> b = b'\x00'
>>> a+b
b'\x04\x00'

Đã trả lời ngày 2 tháng 4 năm 2017 lúc 12:21Apr 2, 2017 at 12:21

Hướng dẫn concat two bytes in python - nối hai byte trong python

0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101

Bạn có thể sử dụng hai thao tác này.

0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
2 cho ca làm việc 8 bit hoặc một byte

0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
3 để sáp nhập.

a = b'0x04'
a << 8
b'0x0400'

Hướng dẫn concat two bytes in python - nối hai byte trong python

Hellow

Huy hiệu vàng 11,5K748 Huy hiệu bạc70 Huy hiệu đồng7 gold badges48 silver badges70 bronze badges

Đã trả lời ngày 9 tháng 8 năm 2018 lúc 10:10Aug 9, 2018 at 10:10

Một cách khác trong Python3 là:

b''.join([a,b])

Nếu bạn có các phần tử byte trong danh sách nói

0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
4, bạn có thể coi danh sách thông thường tham gia.

b''.join(bytes_list)

Đã trả lời ngày 7 tháng 11 năm 2020 lúc 18:05Nov 7, 2020 at 18:05

RilwanrilwanRilwan

2.2311 Huy hiệu vàng19 Huy hiệu bạc28 Huy hiệu đồng1 gold badge19 silver badges28 bronze badges

Trong ứng dụng của tôi, tôi nhận được một luồng byte từ một cảm biến. Tôi cần kết hợp hai trong số các byte để tạo giá trị số nguyên.

Câu trả lời của Hossein là giải pháp chính xác.

Giải pháp giống như khi một người cần bit số nhị phân để kết hợp chúng chẳng hạn nếu chúng ta có hai từ tạo ra byte, từ cao 0010 và từ thấp 0100. Chúng ta không thể thêm chúng với nhau nhưng nếu chúng ta bit thay đổi Từ cao cho bốn không gian bên trái chúng ta có thể hoặc các bit với nhau để tạo 00100100. Bằng cách chuyển từ cao mà chúng ta đã nhân lên nó với 16 hoặc 10000.

Trong ví dụ Hex ở trên, chúng ta cần chuyển byte cao trên hai chữ số mà trong Hex 0x100 bằng 256. Do đó, chúng ta có thể nhiều byte cao bằng 256 và thêm byte thấp.

Hướng dẫn concat two bytes in python - nối hai byte trong python

Nic3500

7.19410 Huy hiệu vàng30 Huy hiệu bạc38 Huy hiệu đồng10 gold badges30 silver badges38 bronze badges

Đã trả lời ngày 8 tháng 8 năm 2018 lúc 19:03Aug 8, 2018 at 19:03

Nó có một giải pháp đơn giản như thế này: 0x0400 = 0x04 × 256 + 0x00

Đã trả lời ngày 3 tháng 8 năm 2018 lúc 16:17Aug 3, 2018 at 16:17

3

Cách khuyến nghị để kết hợp (hai hoặc một vài) chuỗi byte trong Python 3 là gì? Cách được đề xuất để làm như vậy nếu mã sẽ hoạt động cho cả hai, Python 2 và 3 là gì?both, Python 2 and 3?

Trong Python 2, chúng ta có thể dễ dàng nối hai hoặc nhiều chuỗi byte bằng định dạng chuỗi:

>>> a = "\x61"
>>> b = "\x62"
>>> "%s%s" % (a, b)
'ab'

Đó là thời gian hoàn vốn và

0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
5 trả lại bán trực quan
0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
6 trong Python 3 (.3) (và
0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
7 ném
0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
8). Đây là kết quả của sự phân biệt nghiêm ngặt của Python 3 giữa văn bản (chuỗi các điểm mã unicode) và byte (chuỗi các byte thô). Cuối cùng, trong Python 3, sự kết hợp của các chuỗi byte thông qua định dạng chuỗi mang lại một cái gì đó hoàn toàn khác với những gì Python 2 làm:

>>> a = b"\x61"
>>> b = b"\x62"
>>> "%s%s" % (a,b)
"b'a'b'b'"

Kết quả là văn bản (một chuỗi các điểm mã unicode) thay vì chuỗi byte (một chuỗi byte). Trong thuật ngữ Python, kết quả của sự kết hợp chuỗi byte này là sự kết hợp của các biểu diễn (

0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
9 /
a = b'0x04'
a << 8
b'0x0400'
0) của các chuỗi byte này.text (a sequence of unicode code points) instead of a byte string (a sequence of bytes). In Python terminology, the result of this byte string concatenation is the concatenation of the representations (
0x01 << 8 = 0x0100
0X0100 | 0X01 = 0X0101
9 /
a = b'0x04'
a << 8
b'0x0400'
0) of these byte strings.

Liên kết hai chuỗi byte

Trong Python 3, toán tử

a = b'0x04'
a << 8
b'0x0400'
1 trả về những gì chúng tôi muốn:

a = b'0x04'
a << 8
b'0x0400'
1 cũng hoạt động cho Python 2:

Liên kết nhiều chuỗi byte

Trên đây sẽ là phương pháp ưa thích nếu bạn muốn kết hợp chỉ hai chuỗi byte. Trong trường hợp bạn có chuỗi các chuỗi byte dài hơn mà bạn cần để kết hợp,

a = b'0x04'
a << 8
b'0x0400'
3 cũ tốt sẽ hoạt động trong cả hai, Python 2.7 và 3.x.

Python 3 đầu ra:

>>> b"".join([a, b])
b'ab'

Python 2.7 Đầu ra:

>>> b"".join([a, b])
'ab'

Trong Python 3, tiền tố chuỗi phân tách

a = b'0x04'
a << 8
b'0x0400'
4 là rất quan trọng (tham gia một chuỗi các chuỗi byte loại với một phân tách các byte loại). Trong Python 2.7, tiền tố
a = b'0x04'
a << 8
b'0x0400'
4 bị bỏ qua và dù sao cũng có chuỗi chữ theo các chuỗi byte. Trong các phiên bản cũ hơn của Python 2, tiền tố
a = b'0x04'
a << 8
b'0x0400'
4 là lỗi cú pháp.

Đối với một chuỗi lớn các chuỗi byte, sự kết hợp dựa trên ____ 23 rõ ràng là hiệu quả hơn so với ____ 28 dựa trên.

Làm cách nào để kết hợp hai byte trong Python?

Để tham gia một danh sách các byte, hãy gọi phương thức byte.join (danh sách). Nếu bạn cố gắng tham gia một danh sách các byte trên một dấu phân cách chuỗi, Python sẽ ném một kiểu mẫu, vì vậy hãy đảm bảo gọi nó trên đối tượng byte b ''. tham gia(...)call the Byte. join(list) method. If you try to join a list of Bytes on a string delimiter, Python will throw a TypeError , so make sure to call it on a Byte object b' '. join(...)

Bạn có thể nối các byte không?

Giải pháp được đề xuất để kết hợp hai hoặc nhiều mảng byte đang sử dụng bytearrayoutputstream.Ý tưởng là viết byte từ mỗi mảng byte vào luồng đầu ra, sau đó gọi tobytearray () để lấy nội dung hiện tại của luồng đầu ra dưới dạng mảng byte.using ByteArrayOutputStream . The idea is to write bytes from each of the byte arrays to the output stream, and then call toByteArray() to get the current contents of the output stream as a byte array.

Làm thế nào để bạn chuyển đổi B thành chuỗi trong Python?

Các cách khác nhau để chuyển đổi byte thành chuỗi trong Python:..
Sử dụng phương thức decode () ..
Sử dụng hàm str () ..
Sử dụng codec.Phương thức giải mã () ..
Sử dụng map () mà không sử dụng tiền tố B ..
Sử dụng gấu trúc để chuyển đổi byte thành chuỗi ..

Chuỗi byte là gì?

Chuỗi byte là một mảng byte có độ dài cố định.A byte là một số nguyên chính xác trong khoảng từ 0 đến 255.Một chuỗi byte có thể bị thay đổi hoặc bất biến.Khi một chuỗi byte bất biến được cung cấp cho một quy trình như byte-set !, Exn: Fail: Exception Exception được nâng lên.a fixed-length array of bytes. A byte is an exact integer between 0 and 255 inclusive. A byte string can be mutable or immutable. When an immutable byte string is provided to a procedure like bytes-set!, the exn:fail:contract exception is raised.