Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Shift Arithmetic

移动信号的位或二进制小数点

  • Shift Arithmetic block

库:
Simulink / Logic and Bit Operations
HDL Coder / Logic and Bit Operations

描述

Shift Arithmetic 模块可以移动输入信号中的数位和/或二进制小数点。

例如,将 sfix(8) 数据类型的输入信号中的二进制小数点向右和向左移动两位,将得到以下小数值。

移位运算二进制值十进制值

无移位(原始数字)

11001.011

-6.625

二进制小数点向右移动两位

1100101.1

-26.5

二进制小数点向左移动两位

110.01011

-1.65625

此模块对有符号数字执行算术移位。因此,模块为每一次移位回收最高有效位。将 sfix(8) 数据类型的输入信号中的数位向右和向左移动两位,将得到以下小数值。

移位运算二进制值十进制值

无移位(原始数字)

11001.011

-6.625

向右移动两位

11110.010

-1.75

向左移动两位

00101.100

5.5

端口

输入

全部展开

要对其执行运算的数,指定为标量、向量或数组。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

要移位的位数,指定为标量。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

输出

全部展开

运算结果,以标量、向量或数组形式返回。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

参数

全部展开

指定是直接在对话框中输入要移动的位数,还是从输入端口继承值。

可调: No

编程用法

模块参数BitShiftNumberSource
类型:字符向量、字符串
'Dialog' | 'Input port'
默认值'Dialog'

指定标量、向量或移位值数组。当二进制位移位数:源对话框时,此参数才可用。

如果方向为...则...
左侧右侧 使用正整数指定移位。
双向 使用正整数表示右移,使用负整数表示左移。

可调: No

编程用法

模块参数BitShiftNumber
类型:字符向量、字符串
scalar
默认值'9'

指定移位的方向:向左、向右或双向。

可调: No

编程用法

模块参数BitShiftDirection
类型:字符向量、字符串
'Left' | 'Right' | 'Bidrectional'
默认值'Bidrectional'

指定将输入信号中的二进制小数点移动的整数位数。正值表示右移,负值表示左移。

可调: No

编程用法

模块参数BinPtShiftNumber
类型:字符向量、字符串
'Dialog' | 'Input port'
默认值'Dialog'

指定当模块包含超出范围的移位值时,是否在仿真过程中生成警告或错误消息。选项包括:

  • None - 不执行任何 Simulink® 操作。

  • Warning - Simulink 显示警告并继续进行仿真。

  • Error - Simulink 终止仿真并显示错误。

有关详细信息,请参阅超范围移位值的仿真和加速模式结果

编程用法

模块参数DiagnosticForOORShift
类型:字符向量、字符串
'None' | 'Warning' | 'Error'
默认值'None'

如果选中此复选框,将在生成的代码中包含条件语句,以防移位值超出范围。当二进制位移位数:源输入端口时,此复选框才可用。

有关详细信息,请参阅超范围移位值的代码生成

编程用法

模块参数CheckOORBitShift
类型:字符向量、字符串
'on' | 'off'
默认值'off'

模块特性

数据类型

double | fixed point | half | integer | single

直接馈通

多维信号

可变大小信号

过零检测

详细信息

全部展开

算法

全部展开

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2006a 之前推出