How do I do unsigned comparsion between two vectors having 1s and 0s?

x = '10000001000000000000000000000000'
y = '00000000000001010110001111000000'
Let's say x is the binary representation of a 32-bit unsigned number. y is also same.
I want to have unsigned comparison between both of them. That means x(1) and y(1) are the MSB and the comparsion should start from there till we reach LSB.
Thanks.

 Respuesta aceptada

x = '10000001000000000000000000000000'
x = '10000001000000000000000000000000'
y = '00000000000001010110001111000000'
y = '00000000000001010110001111000000'
% Convert the binary to decimal
xd = bin2dec(x)
xd = 2.1643e+09
yd = bin2dec(y)
yd = 353216
% compare the decimal number
xd > yd
ans = logical
1

2 comentarios

Thanks. This works well for the 32-bit. Will it work for 64-bit as well?
It works forup to 53 binary bits (?).
If you have more bits to compare, you can use symbolic computation:
x = '0b100000010000000000000000000000001000000000000000000000000011';
y = '0b000000000000010101100011110000001000000000000000000000000011';
xs = sym(x)
xs = 
580964352065011715
ys = sym(y)
ys = 
94815832244227
isAlways(xs > ys)
ans = logical
1

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2022a

Etiquetas

Preguntada:

el 29 de Mzo. de 2022

Comentada:

el 29 de Mzo. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by