Преобразуйте текстовое представление двоичного целого в двойное значение
преобразует двоичное целое число, представленное D
= bin2dec(binStr
)binStr
к эквивалентному десятичному числу и возвращает его как значение с плавающей точностью с двойной точностью.
Если binStr
представляет целое число, больше или равное flintmax
, затем bin2dec
может не представлять его точно как значение с плавающей точкой.
Преобразуйте вектор символов, который представляет двоичное значение в десятичное число.
binStr = '10111';
D = bin2dec(binStr)
D = 23
Начиная с R2019b, вы можете записывать значения в двоичном формате непосредственно, не используя bin2dec
. Используйте 0b
префикс и не использовать кавычки. MATLAB ® сохраняет значение как целое число, а не как текст.
D = 0b10111
D = uint8
23
Создайте строковые массивы, который представляет несколько двоичных значений.
binStr = ["1111111111" "1111010" "1110"]
binStr = 1x3 string
"1111111111" "1111010" "1110"
Преобразуйте двоичные значения и верните числовой массив.
D = bin2dec(binStr)
D = 1×3
1023 122 14
Начиная с R2019b, рекомендуется, чтобы вы создали числовой массив с использованием двоичных литералов вместо преобразования текста в bin2dec
.
D = [0b1111111111 0b1111010 0b1110]
D = 1x3 uint16 row vector
1023 122 14
binStr
- Текст, представляющий двоичные числаТекст, представляющий двоичные числа, заданный как символьный массив, массив ячеек из векторов символов или строковые массивы. binStr
представляет двоичные цифры, используя символы 0
и 1
.
Если binStr
является символьный массив с несколькими строками или массивом ячеек с векторами символов, тогда выход является числовым вектором-столбцом.
Если binStr
являются строковые массивы, тогда выход является числовым массивом, который имеет те же размерности.
Двоичное число, представленное binStr
может иметь не более 53 цифр.
Начиная с R2020a, binStr
может быть текстом, который включает те же префиксы (0b
или 0B
) и суффиксы, используемые двоичными литералами. Для примера эти вызовы bin2dec
каждый возвращает номер 7
.
bin2dec('111') bin2dec('0b111') bin2dec('0b111s32')
Кроме того, в R2020a binStr
может представлять дополнение двух отрицательных чисел с помощью суффикса, задающего целый тип со знаком. Для примера, bin2dec('0b11111111s8')
возвращает -1
, потому что s8
суффикс задает 8-битный целый тип со знаком. В предыдущих релизах binStr
не может представлять отрицательное число.
flintmax
Поведение изменено в R2020b
bin2dec
функция выдает предупреждение, когда входные значения больше или равны flintmax
. В предыдущих релизах, bin2dec
не выдавал этого предупреждения.
bin2dec
теперь выдает предупреждение, поскольку входы, представляющие целые числа, большие или равные flintmax
может не быть точно представлено как значения с плавающей точностью двойной точности.
Чтобы преобразовать значения, большие flintmax
в точности рассмотрим одну из следующих альтернатив:
Вместо скалярных входов используйте шестнадцатеричные или двоичные литералы, представляющие одинаковые значения. Когда вы записываете значение как литерал, MATLAB® сохраняет его как целое число, которое точно представляет значение. Для получения дополнительной информации см. Шестнадцатеричные и двоичные значения.
Чтобы преобразовать шестнадцатеричные входы, большие flintmax
, вы можете использовать sscanf
функция со %lx
оператор. Когда вы используете %lx
, преобразованные значения являются целыми числами, которые имеют uint64
тип данных. Эти целые числа имеют достаточное количество памяти, чтобы представлять значения, большие, чем flintmax
точно.
.
Указания и ограничения по применению:
Входной текст должен быть задан как символьный массив или строковый скаляр. Массивы ячеек не поддерживаются.
Когда вход пуст, ответ не совпадает с ответом в MATLAB.
Указания и ограничения по применению:
Входной текст должен быть задан как символьный массив. Массивы ячеек не поддерживаются.
Когда вход пуст, ответ не совпадает с ответом в MATLAB.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.