移位算术
信号比特或二进制点的位移。
类型: ArithShift
图书馆中的路径:
|
说明
移位算术*块可以对输入信号的位或二进制点进行移位,也可以对两者都进行移位。
下表举例说明了如何将 "固定 "类型输入数据的二进制点向左右移动两位数。
移位操作 | 二进制值 | 十进制值 |
---|---|---|
不移位(原始数据) |
11001.011 |
-6.625 |
将二进制点向右移动两位数 |
1100101.1 |
-26.5 |
将二进制点向左移动两位数 |
110.01011 |
-1.65625 |
移位算术*程序块对有符号数进行位移算术运算。因此,程序块每次位移都会重复使用高位。 下表是输入 "固定 "类型数据时,向左右移动两位数的位移示例。
移位操作 | 二进制值 | 十进制值 |
---|---|---|
未移位(原始数字) |
11001.011 |
-6.625 |
位向右移动两位数 |
11110.010 |
-1.75 |
位左移两位数 |
00101.100 |
5.5 |
参数
位移
源 - 要转换的位数的源
对话框(默认) | 输入端口
指定是在对话框中输入位移位数,还是从输入端口继承数值。
块参数 |
|
价值观 |
|
默认值 |
|
Direction - 位移方向
双向(默认)` | 右
| `左
指定位移方向:左、右或双向。
块参数 |
|
价值观 |
|
默认值 |
|
Number - 移位的位数
8(默认)
| scalar
设置位移的位数。
如果 Direction 参数设置为 "双向",正 Number 值表示向右移动,负值表示向左移动。
依赖关系
如果 Source 参数设置为 "对话框",则此参数可用。
块参数 |
|
价值观 |
|
默认值 |
|
数据类型: Int32
, Int64
更多信息
*屏蔽图标变量
移位算术*程序块图标*显示了使用这些变量的程序块行为:
Qy` 是存储的输出整数值。
Qu
- 输入值的整数存储值。
Vy
- 输出值。
Vu
- 输入值。
Ey
- 输出度值。
Eu
- 输入度值。
*用于右位移的块输出。
示例显示了不同*源*参数值下右移位模拟结果的比较:对话框 "和 "输入端口"。
表中给出了上一级程序块 *移位算术*的参数设置。
参数 | 值 |
---|---|
输入端口 u |
|
*源 |
对话框 |
*方向 |
右侧 |
*数字 |
|
上层块 *移位算术*以 124
为输入,对应二进制格式的 01111100
。将位数向右移动两位,得到二进制格式的 00011111
。因此,程序块输出 31
。
下表给出了低位*移位算术*程序块的参数设置。
参数 | 值 |
---|---|
输入端口 u |
|
输入端口 s |
|
*源 |
输入端口 |
*方向 |
右 |
移位算术*下位运算块执行与上位运算块相同的运算。如果位移值作为输入信号通过输入端口提供,则可在仿真过程中进行位移运算。
*用于二进制点移位的输出块。
下面的模型显示了二进制点移位的模拟情况。
表中给出了上一级程序块 *移位算术*的参数设置。
参数 | 值 |
---|---|
输入端口 u |
|
*源 |
对话框 |
*方向 |
双向 |
*数字 |
|
*二进制点移动 |
|
上一级程序块 *移位算术*的输入为`124.0`,对应二进制格式的`01111100`。将二进制点向右移动三个位置,得到二进制格式的 01111100000
。因此,上一级程序块输出 995.0
。
下表给出了下*移位算术*程序块的参数设置。
参数 | 值 |
---|---|
输入端口 u |
|
*源 |
对话框 |
*方向 |
双向 |
*数字 |
|
*二进制点移动 |
|
较低的*移位算术*块也将`124.0`作为输入。将二进制点向左移动三个位置,得到二进制格式的 01111.100
。因此,下级程序块输出 15.5
。