Finding a bit value ?

2 vues (au cours des 30 derniers jours)
Aleksander
Aleksander le 22 Mai 2013
Hi. I have a value like a = 10101 this would change after how my program is run, but i will always use 0 or 1. so i consider this binary. now i would like to get the status of bit 5 i.e the first number (closest to the equal sign).
note!: the intention is to have the binary row decied which buttons are displayed in a gui.
this is what i have come up with
%code
for i = 0:4
count = i+1
if (bitget(main_sel2, count)==1)
set(handles.(sprintf('but%d', count))(:),'Visible','on');
else
set(handles.(sprintf('but%d', count))(:),'Visible','off');
end
end
  1 commentaire
Azzi Abdelmalek
Azzi Abdelmalek le 22 Mai 2013
What is your question?

Connectez-vous pour commenter.

Réponses (1)

Matt J
Matt J le 22 Mai 2013
Modifié(e) : Matt J le 22 Mai 2013
One way,
>> bits=fliplr(num2str(a)-'0'); bits(5)
ans =
1
  4 commentaires
Aleksander
Aleksander le 25 Mai 2013
Thanks, i tested it now and looks to work as i want :) Sine i am a nub can you try to enlighten me how fliplr actualy dose This ? Thanks.
Matt J
Matt J le 25 Mai 2013
FLIPLR isn't doing anything significant. You posted that you want the indexing order of the bits to run from right to left (bit #5 is the leftmost bit). If you omit FLIPLR, you will be reading from left to right instead.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by