Converting "twos complement" - decimal to actual twos complement and back to decimal
151 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Vinci
el 29 de Ag. de 2014
Comentada: nima nabavi
el 11 de Ag. de 2021
Hello there
I've been working on a god damn binary-decimal conversion for at least three hours now so please help me out.
I imported a very large .csv file where the columns represent 32bit twos complement but are actual decimal values. So the very first element for example is 4.294.721.774 instead of an awful lot of ones and zeros.
In order to convert this number to the actual real value I tried the following:
% q object for 32bit precision
q = quantizier([32 31]);
% test with first element
num = 4294721774;
bin = de2bi(num, 'left-msb');
% convert binary array to string
str_bin = mat2str(bin);
% cut lead, tail and spaces
str_bin = str_bin(2:end-1);
str_bin = strrep(str_bin, ' ', '');
% convert back
output = bin2num(q, str_bin);
But not only is this highly inefficient, it also doesn't work... Any suggestions?
0 comentarios
Respuesta aceptada
Iain
el 29 de Ag. de 2014
Ah. Try:
typecast(uint32(4294721774),'int32')
I'm sure someone mentioned a faster version was in file exchange somewhere.
2 comentarios
Ver también
Categorías
Más información sobre Multirate Signal Processing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!