Exploring the Basics of Binary Data
Бинарные данные (binary data) это данные, которые представлены двоичной формой, в виде последовательности битов (0 и 1). Они могут быть представлены в различных форматах, таких как изображения, аудио, видео, текстовые файлы и т.д.
В программировании бинарные данные широко используются в процессе обмена данными между программами и устройствами, например, при передаче файлов по сети, чтении файловых систем, обработке изображений и звука.
Примеры кода, работающие с бинарными данными в различных языках программирования:
Python:
python
# Чтение бинарного файла
with open('image.jpg', 'rb') as f:
binary_data = f.read()
# Передача бинарных данных по сети
import socket
# создание клиента
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# подключение к серверу
client_socket.connect(('localhost', 12345))
# отправка бинарных данных
client_socket.sendall(binary_data)
# чтение и запись бинарных данных из и в файл
with open('output.bin', 'wb') as f:
f.write(binary_data)
Java:
java
// чтение бинарного файла
File file = new File("image.jpg");
byte[] binaryData = Files.readAllBytes(file.toPath());
// передача бинарных данных по сети
Socket clientSocket = new Socket("localhost", 12345);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.write(binaryData);
// чтение и запись бинарных данных из и в файл
OutputStream outputStream = new FileOutputStream("output.bin");
outputStream.write(binaryData);
C++:
cpp
// чтение бинарного файла
std::ifstream file("image.jpg", std::ios::binary);
if (file) {
std::vector binary_data((std::istreambuf_iterator(file)),
std::istreambuf_iterator());
}
// передача бинарных данных по сети
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
send(sockfd, binary_data.data(), binary_data.size(), 0);
// чтение и запись бинарных данных из и в файл
std::ofstream output_file("output.bin", std::ios::binary);
output_file.write(binary_data.data(), binary_data.size());