2014-03-01 16 views
2

我想對兩個二進制數執行邏輯and操作。我試圖使用bitand,但該功能只能用於char數據類型。和在兩個二進制數上的操作

我想對兩個二進制數執行and。 如:

a=1101; 
b=1010; 

那麼a and b輸出必須

c=1000; 

這是我曾嘗試:

K=input('feed the value'); 
M=2^K; 
S=input('feed the data'); 
disp(M); 
s=dec2bin(S); 
m=dec2bin(M-1); 
q=bitand(s,m); 
disp(q); 

回答

1

和我甲肝概率是BITAND只適用數據類型爲char

這是錯誤的。 bitand需要整數輸入參數。

實施例:

>> K=9 

K = 

    8 

>> L=12 

L = 

    12 

>> bitand(K,L) 

ans = 

    8 
+0

我想知道的問題是什麼。 – chappjc

+0

@chappjc:問題是'dec2bin'輸出一個char數組。 – Daniel

+0

對,我的意思是爲什麼在那裏有'dec2bin'。 :) – chappjc

1

字符串s轉換爲使用s-'0'二元載體。對m做同樣的事情。那麼你可以申請and (or &)

n = 4; %// specify number of bits 
s = dec2bin(S,n)-'0'; 
m = dec2bin(M-1,n)-'0'; 
q = and(s,m); %// Or: q = s & m; 

或者使用de2bi(通訊工具箱),其中一些直接轉換爲二進制向量:

n = 4; %// specify number of bits 
s = de2bi(S,n,'left-msb'); 
m = de2bi(M-1,n,'left-msb'); 
q = and(s,m); %// Or: q = s & m; 
相關問題