Функция from_be_bytes
Функция from_be_bytes принимает массив байтов
в порядке big-endian (старший байт идёт первым)
и возвращает целое число соответствующего типа.
Параметром функция принимает ссылку на массив байтов
[u8; N], где N - размер типа в байтах.
Функция является ассоциированной функцией числовых типов,
таких как u8, u16, u32, u64,
u128, usize, i8, i16,
i32, i64, i128 и isize.
Синтаксис
u16::from_be_bytes(bytes)
u32::from_be_bytes(bytes)
i32::from_be_bytes(bytes)
Пример
Давайте преобразуем массив байтов
[0x12, 0x34] в число типа u16:
fn main()
{
let bytes: [u8; 2] = [0x12, 0x34];
let res = u16::from_be_bytes(bytes);
println!("{}", res);
}
Результат выполнения кода:
4660
Пример
Давайте преобразуем массив байтов
[0x00, 0x00, 0x30, 0x39] в число типа u32:
fn main()
{
let bytes: [u8; 4] = [0x00, 0x00, 0x30, 0x39];
let res = u32::from_be_bytes(bytes);
println!("{}", res);
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем массив байтов
[0xFF, 0xFF, 0xFF, 0xFF] в число типа i32:
fn main()
{
let bytes: [u8; 4] = [0xFF, 0xFF, 0xFF, 0xFF];
let res = i32::from_be_bytes(bytes);
println!("{}", res);
}
Результат выполнения кода:
-1
Смотрите также
-
функция
from_le_bytes,
которая преобразует байты в little-endian порядке в число -
функция
to_be_bytes,
которая преобразует число в массив байтов big-endian -
функция
from_ne_bytes,
которая преобразует байты в порядке платформы в число -
функция
to_le_bytes,
которая преобразует число в массив байтов little-endian