Các luồng byte chứa, tốt, byte. Được chia nhỏ thành những gì nó thực sự, nó là 8 bit bao gồm 1 và 0. Nếu nó đại diện cho một số, nó sẽ là bất kỳ số nào từ 0 đến 255 (mà tôi có thể thêm vào, không phải ngẫu nhiên tại sao 4 số trong một địa chỉ IP luôn nằm trong khoảng từ 0 đến 255). Các luồng byte thường là các giao diện tinh vi nhằm ẩn mảng byte cơ bản bên dưới được sử dụng để giữ bộ đệm tròn (bạn điền vào bộ đệm và đợi ai đó làm trống nó, tại thời điểm đó, nó chỉ đơn giản là lấp đầy bộ đệm lại).
Cái quái gì thể hiện? Chà, nó có thể đại diện cho một tệp văn bản, hoặc một hình ảnh hoặc một luồng video trực tiếp. Những gì nó là hoàn toàn phụ thuộc vào bối cảnh của những người đang đọc nó. Biểu diễn hex là một cách khác để nói điều tương tự, mặc dù đôi khi thuận tiện hơn để quản lý byte theo cách biểu diễn hex của chúng hơn là số tuy nhiên đó là điều tương tự.
Khi bạn đang đề cập đến dữ liệu thô, bạn thường đề cập đến dữ liệu byte. Dữ liệu đi kèm mà không có thẻ ghi "Tôi là tệp hình ảnh!" Thông thường, bạn chỉ xử lý dữ liệu thô khi bạn không thực sự quan tâm dữ liệu đại diện cho cái gì. Ví dụ: nếu tôi muốn chuyển đổi hình ảnh sang phiên bản đen trắng của nó, tôi có thể nói là đọc dữ liệu thô của hình ảnh và cứ sau 3 byte đọc (thực sự sẽ là đại diện cho màu đỏ, đại diện cho màu xanh lục và đại diện cho màu xanh lam), thêm giá trị số của nó và chia cho 3, sau đó viết giá trị đó 3 lần. Về cơ bản những gì tôi đang làm là lấy trung bình các giá trị đỏ, lục và lam của pixel và tạo pixel tương đương màu xám của nó từ đó. Tuy nhiên, khi bạn nói về việc thực hiện các thao tác với dữ liệu ở mức "byte theo byte", bạn không '
Hoặc, có lẽ bạn muốn lưu tệp trong cơ sở dữ liệu, nhưng nó yêu cầu bạn chèn "dữ liệu thô" của nó vào loại dữ liệu blob. Điều này chỉ có nghĩa là chuyển đổi dữ liệu của tệp thành một mảng byte lớn mà cơ sở dữ liệu có thể hiểu và quản lý. Bạn sẽ thấy rằng khi bạn truy xuất giá trị đó từ cơ sở dữ liệu, nó sẽ chỉ đơn giản là một mảng byte lớn như ban đầu bạn đã cung cấp cho cơ sở dữ liệu. Nếu dữ liệu đó là một tệp, thì bạn, lập trình viên, phải diễn giải lại dữ liệu byte đó như thể bạn đang đọc một tệp một byte mỗi lần.
Nếu ai đó yêu cầu bạn "đảo ngược dữ liệu 4 byte", tôi sẽ cho rằng nó đề cập đến việc giải thích các số lớn về cuối và cuối số, viết các số bắt đầu bằng byte nhiều nhất hoặc ít quan trọng nhất. Không có vấn đề gì nếu một số được biểu diễn dưới dạng cuối lớn hoặc cuối nhỏ, chỉ là tất cả các hệ thống đọc số đó đều giải thích nó một cách nhất quán.
Điều này không có nghĩa là đại diện số thực tế (hoặc biểu diễn hex cho vấn đề đó) đã bị thay đổi, chỉ đơn giản là thứ tự trong đó 4 byte tạo ra một số phải được đảo ngược. Vì vậy, giả sử bạn có 0x01, 0x02, 0x03 và 0x04. Để đảo ngược những điều này, bạn sẽ có 0x04, 0x03, 0x02, 0x01 thay thế. Hệ thống có lẽ sẽ đọc 4 byte này theo thứ tự ngược lại và vì bạn đã đảo ngược nó, giá trị được hiểu là giống như những gì được dự định trong dữ liệu thô.
Tôi hy vọng điều đó giải thích nó!