# How does bitshift work?

5 views (last 30 days)

Show older comments

Kaavya N
on 4 May 2021

Commented: Scott MacKenzie
on 5 May 2021

bitshift(56,-1)

gives answer 28 in matlab

My understanding of this working is as follows:

the function converts 56 to binary value ie 0101 0110 and does right shift since its -1

so 0010 1011 -> 2b (hexa)

so the answer should be "2b" right?

How does this function work?

##### 4 Comments

Stephen23
on 5 May 2021

Edited: Stephen23
on 5 May 2021

"the function converts 56 to binary value ie 0101 0110"

You appear to have mixed up decimal and hexadecimal:

B = '01010110'; % your binary string

D = pow2(numel(B)-1:-1:0)*sscanf(B,'%1d') % decimal

D = bin2dec(B) % decimal

H = dec2hex(D) % hexadecimal

H = sprintf('%x',D) % hexadecimal

### Accepted Answer

Walter Roberson
on 4 May 2021

dec2bin(56,8)

In other words, your difficulty is that 0101 0110 is not the correct representation for 56.

##### 3 Comments

Walter Roberson
on 5 May 2021

Scott MacKenzie
on 5 May 2021

### More Answers (0)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!