MR2 | MR1 | MR0 | |
---|---|---|---|
Пример 1 | |||
Неокругленное значение, где 15-й разряд равен 1 | xxxxxxxx | xxxxxxxx 00100101 | 1xxxxxxxxxxxxxxx |
Прибавление 1 к 15-му разряду и учет переноса | 100000000 0000000 | ||
Округленное значение | xxxxxxxx | хххххххх 00100110 | 0xxxxxxxxxxxxxxx |
Пример 2 | |||
Неокругленное значение, где 15-й разряд равен 1, а разряды с 0-го по 14-й равны нулю | xxxxxxxx | хххххххх 00100110 | 100000000 0000000 |
Прибавление 1 к 15-му разряду и учет переноса | 100000000 0000000 | ||
Неокругленное значение, где бит 16 равен 1 | xxxxxxxx | хххххххх 00100111 | 00000000 00000000 |
Установка 16-го разряда в ноль и получение округленного значения | xxxxxxxx | хххххххх 00100110 | 00000000 00000000 |
x — произвольное значение (0 или 1).
В первом примере число не является срединным и производится его стандартное округление.
Во втором примере число имеет срединное значение, поэтому его 16-й разряд устанавливается в ноль. Алгоритм округления применяется для каждой операции округления, но становится очевидным лишь при таком наборе младших бит, который показан в примере 2.
В процессорах ADSP-2181 возможен режим смещенного округления. Этот режим выбирается путем установки 12-го бита (BIARND) регистра управления SPORT0. Если BIARND=0, то используется операция несмещенного округления, если BIARND=1, то смещенного. Примеры таких операций приведены в табл. 15.5.
Таблица 15.5
Значение регистра MR до округления | Результат округления со смещением | Результат округления без смещения |
---|---|---|
00-0000-8000 | 00-0001-8000 | 00-0000-8000 |
00-0001-8000 | 00-0002-8000 | 00-0002-8000 |
00-0000-8001 | 00-0001-8001 | 00-0001-8001 |
00-0001-8001 | 00-0002-8001 | 00-0002-8001 |
00-0000-7FFF | 00-0000-7FFF | 00-0000-7FFF |