この例では、MCode ブロックを使用したビット シフト操作のインプリメント方法を示します。シフト操作は、2 のべき乗での乗算および除算で達成されます。たとえば、4 で乗算することは 2 ビットの左シフトと同じであり、8 で割ることは 3 ビットの右シフトと同じです。シフト操作は、2 進小数点の位置の移動および必要に応じてビット幅の拡張によりインプリメントされます。Fix_8_4 値を 4 で乗算すると Fix_8_2 値になり、Fix_8_4 を 64 で乗算すると Fix_10_0 値になります。
次に、1 左シフトと 1 右シフトを定義する xlsimpleshift.m
ファイルの内容を示します。
function [lsh3, rsh2] = xlsimpleshift(din)
% [lsh3, rsh2] = xlsimpleshift(din) does a left shift
% 3 bits and a right shift 2 bits.
% The shift operation is accomplished by
% multiplication and division of power
% of two constant.
lsh3 = din * 8;
rsh2 = din / 4;
次の図に、コンパイル後のサブシステムを示します。
図 1. シフト操作