How to convert signed integer (from -8 to 7) into 4 bit signed binary
19 次查看(过去 30 天)
显示 更早的评论
I wanted to convert a vector (approximately 270k entries) of integers ranged from -8 to 7 into 4 bit signed binary, and I used
dec2bin((typecast(int8(Data), 'uint8')), 8)
to find the 8 bit signed binary for my data. However I need to take either the upper 4 bits of the 8 bits, or convert them into 4 bit signed binary directly from the integers as they can be expressed as 2's complement 4 bit signed binary. Could anyone teach me how to do that?
My current situation: I have all of them as 8 bit signed binary, but some entries only appear as '10', '1', '11', etc. i.e. not 8 bits even though I tried to use
dec2bin(d, n)
So when I tried to convert the numbers to strings and take the first 4 bits with
num2str
all I would get are spaces.
Any help would be greatly appreciated!!
0 个评论
回答(1 个)
Walter Roberson
2017-11-27
int2bin4 = dec2bin([15:-1:8,0:7],4) - '0'; %or leave out the '0' if you want character output;
translated_vector = int2bin4(YourVector(:) + 9, :);
4 个评论
Walter Roberson
2017-11-27
Data_int = int2bin4(floor(Data_original * 15/2) + 9, :) ;
int2bin4 is acting as a lookup table to provide an efficient way to do the data conversion
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Numeric Types 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!