В этом примере показано, как преобразовать двоичные числа в десятичные целые числа. Это подсвечивает различие между правом - и лево-старшим значащим расположением цифры.
b1 = [0 1 0 1 1];
b2 = [1 1 1 0];
Преобразуйте эти два двоичных массива в десятичное число при помощи bi2de функция. Присвоение старшая значащая цифра является крайним левым элементом. Выход преобразования b1 соответствует , и b2 соответствует .
d1 = bi2de(b1,'left-msb')
d1 = 11
d2 = bi2de(b2,'left-msb')
d2 = 14
Присвоение старшая значащая цифра является самым правым элементом. Выход преобразования b1 соответствует , и b2 соответствует .
d — Десятичный выход неотрицательное целое число | вектор
Десятичный выходной параметр, возвращенный как неотрицательный целочисленный или вектор-строка. Если b матрица, каждая строка представляет основу-p номер. В этом случае, выход d вектор-столбец, в котором каждым элементом является десятичное представление соответствующей строки b.
Если тип входных данных
Целочисленный тип данных и значение d может содержаться в том же целочисленном типе данных как вход, тип выходных данных использует совпадающий тип данных в качестве входа. В противном случае тип выходных данных выбран, чтобы быть достаточно большим, чтобы содержать десятичный выход.
дважды или логический тип данных, тип выходных данных является двойным.
один тип данных, тип выходных данных является одним.
bi2de не рекомендуется. Использование bit2int вместо этого.
Не рекомендуемый запуск в R2021b
Использование bit2int вместо bi2de. При преобразовании чисел от неосновы 2 представления десятичному числу использовать base2dec.
Код в этой таблице показывает преобразование из двоичной системы в десятичную для различных входных параметров с помощью рекомендуемой функции.
Нежелательная функция
Рекомендуемая замена
% Default (left MSB)
n = randi([1 100]); % Number of integers
bpi = 3; % Bits per integer
x = randi([0,1],n*bpi,1);
y = bi2de(reshape(x,bpi,[])','left-msb')
% Default (left MSB)
n = randi([1 100]); % Number of integers
bpi = 3; % Bits per integer
x = randi([0,1],n*bpi,1);
y = bit2int(x,bpi)
% Right MSB, logical input
n = randi([1 100]); % Number of integers
bpi = 5; % Bits per integer
x = logical(randi([0,1],n*bpi,1));
y = bi2de(reshape(x,bpi,[])','right-msb')
% Right MSB, logical input
n = randi([1 100]); % Number of integers
bpi = 5; % Bits per integer
x = logical(randi([0,1],n*bpi,1));
y = bit2int(x,bpi,false)
% Right MSB, signed input, single input
n = randi([1 100]); % Number of integers
bpi = 8; % Bits per integer
x = randi([0,1],n*bpi,1,'single');
y = bi2de(reshape(x,bpi,[])','right-msb');
N = 2^bpi;
y = y - (y>=N/2)*N
% Right MSB, signed input, single input
n = randi([1 100]); % Number of integers
bpi = 8; % Bits per integer
x = randi([0,1],n*bpi,1,'single');
y = bit2int(x,bpi,false);
N = 2^bpi;
y = y - (y>=N/2)*N
Расширенные возможности
Генерация кода C/C++ Генерация кода C и C++ с помощью MATLAB® Coder™.
Для просмотра документации необходимо авторизоваться на сайте
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.