How to convert signed integer (from -8 to 7) into 4 bit signed binary
19 views (last 30 days)
Show older comments
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 Comments
Answers (1)
Walter Roberson
on 27 Nov 2017
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 Comments
Walter Roberson
on 27 Nov 2017
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
See Also
Categories
Find more on Numeric Types in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!