我需要在matlab中获得第2位

时间:2012-03-04 16:19:26

标签: matlab

我无法在MatLab中获得第2位 例如:

enter code here
% c is an array to save the get bit result
a is decimal = 253
convert it to binary
a=11111101
k=1;
c(k)=bitget(a,2);
c=0;

我需要的是c(1)= 0;

2 个答案:

答案 0 :(得分:1)

您需要bin2decbitget

答案 1 :(得分:0)

您需要使用的代码是bitget(a,2),而不是getbit及其小端,因此从右侧看,意味着第2位将返回0

再次更新已更新问题的答案,您仍然需要使用bitget命令, 它不是从左边看的位,而是从右边看它们。

例如,如果您的位是a=11110000

bitget(a,1) = 0
bitget(a,2) = 0
bitget(a,3) = 0
bitget(a,4) = 0
bitget(a,5) = 1
bitget(a,6) = 1
bitget(a,7) = 1
bitget(a,8) = 1

我希望这会有所帮助

第3次更新:

不幸的是,

dec2bin将始终返回字符串值,所以我检查了一下,如果它们在向量中输出值,那么你可以使用de2bi,例如那么 253看起来像x = [1, 1, 1, 1, 1, 1, 0, 1],如果您想访问某个特定位置,那么您可以x[y]并拥有您的号码,我希望这会有所帮助。