2012-09-12 35 views
0
變量結構

我想要做的就是其Q - 10位&Ç - 4位和執行操作 -Ç像MATLAB

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

其中Q,C是像C中的結構那樣處理14位。這在Verilog中本地支持,可以用C中的結構實現。我如何在MATLAB中做類似的事情?

+0

Q的MSB在操作過程中是否丟失或Q變爲11位? – slayton

+0

在我正在實現的算法中,它變成了11位,但如果現在丟失了,我沒關係。我總是可以延長它。 –

回答

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); 
+0

謝謝。這應該完成工作。我想我的想法是因爲缺乏結構而被裝箱的。 –