base2dec
функция выдает предупреждение, когда входные значения больше или равны flintmax
. В предыдущих релизах, base2dec
не выдавал это предупреждение.
base2dec
теперь выдает предупреждение потому что входные параметры, представляющие целые числа, больше, чем или равный flintmax
не может быть представлен точно так же, как значения с плавающей точкой с двойной точностью.
Преобразовывать значения, больше, чем flintmax
точно, рассмотрите одну из этих альтернатив:
Вместо скалярных вводов текста используйте шестнадцатеричные или бинарные литералы, представляющие те же значения. Когда вы пишете значение как литерал, MATLAB® хранит его как целое число, которое представляет значение точно. Для получения дополнительной информации смотрите Шестнадцатеричные и Двоичные значения.
Преобразовывать шестнадцатеричные входные параметры, больше, чем flintmax
, можно использовать sscanf
функция с %lx
оператор. Когда вы используете %lx
, конвертированные значения являются целыми числами, которые имеют uint64
тип данных. Эти целые числа имеют достаточно устройства хранения данных, чтобы представлять значения, больше, чем flintmax
точно.
.