Получите биты в определенных положениях
Считайте следующую фиксированную точку без знака fi
номер со значением 85, размер слова 8, и дробная длина 0:
a = fi(85,0,8,0); disp(bin(a))
01010101
Получите бинарное представление бита в положении 4:
c = bitget(a,4);
bitget
возвращает бит в положении 4 в бинарном представлении a
.
Начните с фиксированной точки со знаком 3х3 матрица с размером слова 4 и дробная длина 0.
a = fi([2 3 4;6 8 2;3 5 1],0,4,0); disp(bin(a))
0010 0011 0100 0110 1000 0010 0011 0101 0001
Получите бинарное представление битов в заданном положении.
c = bitget(a,fi(2))
c = 1 1 0 1 0 1 1 0 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 1 FractionLength: 0
MATLAB® возвращает матрицу битов в положении fi(2)
из a
. Выходная матрица имеет те же размерности как a
, и размер слова 1.
Начните с вектора фиксированной точки со знаком с размером слова 16, дробная длина 4.
a = fi([86 6 53 8 1],0,16,4); disp(bin(a))
0000010101100000 0000000001100000 0000001101010000 0000000010000000 0000000000010000
Создайте вектор, который задает положения битов, чтобы добраться.
bit = [1,2,5,7,4]
bit = 1×5
1 2 5 7 4
Получите бинарное представление битов a
в положениях, заданных в bit
.
c = bitget(a,bit)
c = 0 0 1 0 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 1 FractionLength: 0
bitget
возвращает вектор битов a
в положениях, заданных в bit
. Выходной вектор имеет ту же длину как входные параметры, a
и bit
, и размер слова 1.
Создайте fi
по умолчанию объект со значением
pi
.
a = fi(pi); disp(bin(a))
0110010010001000
Объект по умолчанию подписывается с размером слова 16.
Создайте вектор из положений битов, вы хотите войти в a
, и получите бинарное представление тех битов.
bit = fi([15,3,8,2]); c = bitget(a,bit)
c = 1 0 1 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 1 FractionLength: 0
MATLAB® возвращает вектор битов в a
в положениях, заданных вектором индекса, bit
.
a
— Входной массивВходной массив в виде скаляра, вектора, матрицы или многомерного массива фиксированной точки fi
объекты. Если a
и bit
являются оба нескалярными, у них должна быть та же размерность. Если a
имеет numerictype
со знаком, битное представление сохраненного целого числа находится в дополнительном представлении two.
Типы данных: фиксированная точка fi
bit
— Битный индексБитный индекс в виде скаляра, вектора, матричного или многомерного массива fi
объекты или встроенные типы данных. Если a
и bit
являются оба нескалярными, у них должна быть та же размерность. bit
должен содержать целочисленные значения между 1
и размер слова a
, включительно. LSB
(самый правый бит), задан битным индексом 1
и MSB
(крайний левый бит), задан размером слова a
. bit
не должен быть вектор из последовательных позиций двоичного разряда; это может также быть переменное значение индекса.
a = fi(pi,0,8); a.bin
11001001
Типы данных: fi
|single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
c
— Выходной массивВыходной массив в виде скаляра без знака, вектора, матрицы или многомерного массива с WordLength
1.
Если a
массив и bit
скаляр, c
массив без знака с размером слова 1. Этот массив без знака включает значения битов в положении bit
в каждом элементе фиксированной точки в a
.
Если a
скаляр и bit
массив, c
массив без знака с размером слова 1. Этот массив без знака включает значения битов в a
в положениях, заданных в bit
.
Для VHDL®, генерирует оператор среза: a(idx)
.
Для Verilog®, генерирует оператор среза: a[idx]
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.