How to count number of ones and zeros in a binary number?
42 ビュー (過去 30 日間)
古いコメントを表示
I am having some set of binary numbers. I need to count the number of ones and zeros in each binary number. If a binary number has even number of ones then the output has to be '1' or it has to be '0'. Thank you in advance.
Example:
A=1100
B=0100
output of A =1
output of B = 0
0 件のコメント
採用された回答
Davide Masiello
2022 年 11 月 29 日
編集済み: Davide Masiello
2022 年 11 月 29 日
I will assume that your binary numbers are stored as a character array, which is how Matlab normally works, e.g.
A = dec2bin(20)
B = dec2bin(21)
Now in the example above, A has an even and B has an odd number of ones respectively.
your desired output can be easily obtained with
1-mod(nnz(A=='1'),2)
1-mod(nnz(B=='1'),2)
3 件のコメント
Davide Masiello
2022 年 11 月 29 日
A= [1110, 0111, 0110, 1111];
B = 1-mod(sum(num2str(A') == '1',2),2)
その他の回答 (1 件)
Chunru
2022 年 11 月 29 日
% if you use char to represent binary numbers
A='1100';
mod(sum(A=='1'), 2) == 0
% if you use double to represent binaray numbers, you can do the conversion
% first
A = 1100;
A = num2str(A)
mod(sum(A=='1'), 2) == 0
4 件のコメント
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!