0

我想要做的是拥有 Q - 10 位和 C - 4 位并执行操作 -

Q,C = Q,C << 1(左移 C 的 MSB 到 Q 的 LSB)

其中 Q,C 被 14 位视为 C 中的结构。这在 verilog 中本机支持,可以通过 C 中的结构来实现。我如何在 MATLAB 中做类似的事情?

4

1 回答 1

2

我不认为 matlab 支持 c 风格的联合。它确实具有bitshift使您能够使用算术解决此问题的功能。

% Q is 10 bits, C is 4 bits
% Create QC. 
QC = bitshift(Q, 4) + C;  

% Bit shift QC by 1
QC = bitshift(QC,1);

%Grab QC bits 13->4 and save as Q
Q = bitshift(QC, -4);

%get QC bits 3->0 and save as C
C = bitand(QC, 2^(4+1)-1);
于 2012-09-13T03:37:15.730 回答