Я хотел бы построить каждый 9-ый элемент из файла ASCII с указанной одной колонки 24-разрядное шестнадцатиричное значениеMatlab чтения 24-битного ASCII-шестнадцатеричный файл в 32-разрядное
ex.
813457
123456
241566
etc..
проблема в том, что я не могу заставить Matlab рассматривать значения 800000-FFFFFF как отрицательные, по-видимому, потому что это не знак, расширяющий его на 32 бита.
Я думал разбивая его на строки, а затем преобразование, но sscanf требует «0x», чтобы преобразовать подписанную% я прокляну значения, так что я вынужден использовать неподписанные:
C = textscan(fp, '%s') %generates 16380x1 cell (instead of normal array?!)
sscanf (C{1,1}{1,1}, '%x') %convert first ascii hex element from cell to unsigned hex
Интересно, как test, просто выполнение hex2dec ('FFC00000') приводит к постовому числу, как я могу заставить все строки ascii в файле импортироваться в виде массива подписанных 24 или 32-битных данных?
Просто чтобы убедиться: что соответствующий результат 'FFC00000' быть? –
Это должно быть -4194304 ... как простой тест, используя калькулятор программирования Windows, вы можете ввести отрицательные десятичные значения, а затем переключиться на Hex, чтобы увидеть шестнадцатеричный номер комплимента соответствующего 2. – ben
См. Мой ответ –